本文主要介紹關于線程如何實作的方式,主要介紹的是在jdk1.5之前的兩種方式:分别是繼承Thread類與實作Runnable接口。
繼承Thread類:
第一種:
new Thread(){}.start();
這表示調用Thread子類對象的run方法,new Thread(){}表示一個Thread的匿名子類的執行個體對象,子類加上run方法後的代碼如下:
new Thread(){
public void run(){
}
}.start();
第二種:
new Thread(newRunnable(){}).start();
這表示調用Thread對象接受的Runnable對象的run方法,new Runnable(){}表示一個Runnable的匿名子類的執行個體對象,runnable的子類加上run方法後的代碼如下:
new Thread(newRunnable(){
public void run(){
}
}
).start();
具體代碼測試實作:
建立兩個線程,一個繼承Thread類。一個實作Runnable。
package MultiThreed;
public class NumberThread extends Thread{
public NumberThread(String string) {
super(string);
}
@Override
public void run() {
for (int i = 1; i < 5000; i++) {
System.out.println(this.getName()+":"+i);
}
}
}
package MultiThreed;
public class NumberThread2 implements Runnable{
private String name;
public NumberThread2(String name) {
this.name=name;
}
@Override
public void run() {
for (int i = 1; i < 5000; i++) {
System.out.println(this.name+":"+i);
}
}
}
主方法:
package MultiThreed;
public class Main {
public static void main(String[] args) {
NumberThread t1=new NumberThread("T1");
NumberThread2 t2=new NumberThread2("T2");
t1.start();
new Thread(t2).start();//還是需要調用Thread的start方法啟動
}
}