建立Thread物件的兩種常見的方法分析
阿新 • • 發佈:2019-01-30
一、常見的兩種方法
1.定義一個執行緒類,它繼承類Thread並重寫其中的run方法
- 定義一個類繼承Thread類
public class MyThread1 extends Thread{
public void run()
{
方法體1;
}
}
- 呼叫自定義Thread物件
public static void main(String [] args){
MyThread m1=new MyThread1("thread1");
MyThread m2=new MyThread1("thread2");
MyThread m3=new MyThread1("thread3");
m1.start();
m2.start();
m3.start();
}
2.通過實現Runnable介面來建立多執行緒
- 定義一個類實現Runnable介面
public class MyThread2 implements Runnable {
public void run() {
方法體2;
}
- 呼叫自定義Thread物件
public static void main(String [] args){
MyThread m1=new MyThread1("thread1");
MyThread m2=new MyThread1("thread2");
MyThread m3=new MyThread1("thread3");
m1.start();
m2.start();
m3.start();
}
注:其中方法體1,2中均為執行緒要實現的操作程式碼
二、兩種方法的比較
第一種方式,繼承Thread類,類僅支援單繼承,也就是說,當定義一個新的類的時候,它只能擴充套件一個外部類.這樣,如果建立自定義執行緒類的時候是通過擴充套件 Thread類的方法來實現的,那麼這個自定義類就不能再去擴充套件其他的類,也就無法實現更加複雜的功能。同時執行緒任務和執行緒物件繫結在一起,耦合性(緊密聯絡程度)高。不便於維護。
第二種方式,實現Runnable介面,執行緒任 務在實現Runnable介面的類中,執行緒物件是Thread類物件,執行緒任務和執行緒物件相分離,耦合性底,便於維護,可拓展性高。