一.關於線程java
二.java中的線程編程編程
Thread類this
java中的線程已被封裝爲Thread類,void start()方法就是啓動線程的方法,調用後會讓線程去執行指定的方法。void run()是其中一個方法,start()方法會把它做爲線程的起點。spa
只要讓一個類去繼承Thread類,而後去覆蓋其中的run()方法,那麼就能夠控制線程了線程
1 public class UseThread{ 2 public static void main(String[] args){ 3 MyThread thread = new MyThread(); 4 thread.run; 5 } 6 } 7 class MyThread extends Thread{ 8 public void run(){ 9 System.out.println("This is a thread code"); 10 } 11 }
但是一個類只能實現單繼承,若是繼承了線程類後,則沒法繼承其它類,因而這時候最好是使用接口。java提供了Runnable()接口,它包括了run()方法在內。Thread類中含有Runnable屬性,構造方法能夠是Thread(Runnable),只要Runnable不爲null,那麼就能夠啓用run()方法。code
public class UseThread {
public static void main(String[] args){ MyRunnable runnable = new MyRunnable(); Thread thread = new Thread(runnable); thread.run(); } } class MyRunnable implements Runnable{ public void run(){ System.out.println("這是一個線程代碼"); } }
package study_java; public class Threadagain { public static void main(String[] args){ Threadone threadone = new Threadone(); Threadone threadtwo = new Threadone("線程1"); threadtwo.start(); threadone.start(); threadone.printcurrentthread(); threadtwo.printcurrentthread(); } } class Threadone extends Thread{ Threadone(){ super(); } Threadone(String name){ super(name); } public void run(){ System.out.println("這個線程是: " + this.getName()); } public void printcurrentthread(){ Thread threading = Thread.currentThread(); String threadingname = threading.getName(); System.out.println(threadingname); } }
package study_java; public class Inner { public static void main(String[] args){ PrintCurrentThread printer = new PrintCurrentThread(); //匿名內部類 Runnable runnable = new Runnable(){ public void run(){ PrintCurrentThread p = new PrintCurrentThread(); p.printcurrrentthread(); } }; Thread thread = new Thread(runnable,"線程-1"); thread.start(); printer.printcurrrentthread(); } } class PrintCurrentThread{ public void printcurrrentthread(){ Thread currentthread = Thread.currentThread(); String threadname = currentthread.getName(); System.out.println(threadname); } }
package study_java; public class Threadagain { public static void main(String[] args){ Threadone threadone = new Threadone(); Thread thread = new Thread( threadone); thread.start(); } } class Threadone implements Runnable{ public void run(){ System.out.println("這是一個我本身建立的線程"); } }
1 package study_java; 2 3 public class Threadagain { 4 public static void main(String[] args){ 5 6 Thread thread = new Thread( new Runnable() { 7 public void run(){ 8 System.out.println("這是一個我本身建立的線程"); 9 } 10 }); 11 thread.start(); 12 } 13 14 } 15 class Threadone implements Runnable{ 16 public void run(){ 17 System.out.println("這是一個我本身建立的線程"); 18 } 19 }
使用匿名類blog