public class mythread extends thread
//輸出當前執行緒物件名稱和執行次數
}}public static void main(string args)
1、建立執行緒類,並繼承thread類
2、重寫子類的run方法,實現執行緒的執行邏輯結構
3、在main方法中建立自定義執行緒例項
4、通過mythread.start()啟動
兩個重要的方法:
①thread.currentthread(),這是thread類的靜態方法,該方法返回當前的執行緒物件
②getname(),作用於thread類的例項,返回當前執行緒的名稱。在預設情況下,主線程的名稱為main,使用者啟動的多執行緒的名稱依次為thread-0,thread-1,thread-3..thread-n等。
public class thread2 implements runnable }
}public class main
}}
1、自定義執行緒類,實現runnable方法
2、重寫run()方法
3、將runnable實現類的具體物件作為例項傳入thread()方法。該thread物件才是真正的執行緒物件
ps:main函式中名沒有直接執行thread2的run方法,而是將thread2填入到了thread中,使用start方法來啟動。runable實現類裡包含run方法,僅僅作為執行緒執行體,而實際的執行緒物件依然是thread例項物件,thread為真正建立執行緒的物件。
4、thread物件通過start()啟動執行緒
main類:
public class main
}}).start();
for (int i = 0; i < 50; i++)
}}
只是不用額外再建立乙個執行緒類,節省了一定的記憶體開支。
public class mycallable implements callable
}public static void main(string args) throws executionexception, interruptedexception
callable介面實際上是屬於executor框架中的功能類,callable介面與runnable介面的功能類似,但提供了比runnable更加強大的功能。
1.callable可以在任務結束的時候提供乙個返回值,runnable無法提供這個功能
2.callable的call方法分可以丟擲異常,而runnable的run方法不能丟擲異常。
thread時單繼承的,而介面是可以實現多個介面,所以通過介面實現仍可以繼承其他父類。
thread繼承方式直接通過建立執行緒的物件來啟動執行緒,而繼承介面則需要先建立介面例項的物件,再將物件傳入到thread()方法中來啟動執行緒。
從多執行緒分享同乙個資源上分析,繼承方法無法做到,而實現介面的方法則可以做到。
類可能只需要可執行就行,繼承乙個thread類的開銷大於實現介面。
多執行緒啟動方式
繼承thread類,並重寫run方法,例項化該類物件,呼叫start方法 示例 public class thread1 extends thread public static void main string args 執行結果 結果不唯一 1 main1 1run1 2run1 3run1 4...
java多執行緒的建立方式
啟動執行緒通過兩種方式實現 1 通過實現runnable介面定義乙個由thread驅動的任務,後通過把自己傳給thread的構造來啟動乙個執行緒 runnable沒有返回值,如需返回值則使用callable介面 實現runnable的乙個任務 public class countdown imple...
java多執行緒與實現方式
執行緒建立有兩種形式 1 實現runnable介面 在thread構造中建立實現了runnable介面的類 呼叫start方法 2 從thread類繼承並重寫run方法 在main函式中就不需要new thread了,直接呼叫start方法 執行緒建立方法一 繼承thread public clas...