多執行緒建立的幾種方式

2021-10-05 12:11:40 字數 1230 閱讀 4927

第一種方式:

建立:編寫乙個類 mythread1 (這裡只是小生的自定義命名,方便與**裡名稱一致)讓它繼承 thread 類,

並把需要多執行緒執行的程式放到 public void run() 方法裡。

啟動:在主函式中,new 出 mythread1 類的例項。

執行:呼叫 mythread1 類的例項的 start() 方法即可。

第二種方式:

建立:編寫乙個類 mythread2 讓它實現 runnable 介面,並且要重寫 run() 方法(把需要多執行緒執行的程式放到 public void run() 方法裡)。

啟動:在主函式中,new 出 mythread1 類的例項,

new 出thread 類(帶有 target 的構造方法),

把mythread1 類的例項作為引數傳入thread 類的構造方法裡。

執行:呼叫 thread 類的例項的 start() 方法即可。

第三種方式:

建立:實現 callable 介面(小生定義這個類為 mycallable),並且實現 call() 方法,注意 call() 方法是有返回值的。

啟動:new 出callable 介面的實現類mycallable,

new 出 futuretask 類的例項 task,

把call() 方法的返回值放入futuretask 類的構造方法裡,

把 task 放入 new 出的 thread 構造方法裡。

執行:呼叫 thread 類的例項的 start() 方法即可。

三種方式的利弊總結:

第一種方式有繼承的侷限性,實現runnable的方式適合處理有共享資料的問題

第一種方法好處:建立已經繼承 thread 類的類的例項,呼叫 start() 方法就能執行,**寫起來很方便,

當然缺點就是繼承了thread 父類,就沒有辦法繼承其他的類了,擴充套件性不好。所以一般不建議用這種方式建立多執行緒。

第二種方法好處:繼承介面,擴充套件性好。

弊端是相對的,第一種方式不好也是相對於第二種來說的,而第二種方式相比第三種方式來說,run() 方法沒有返回值,並且不能申明丟擲異常。

第三種方式好處上面已經說明,不好的就是編碼很麻煩

建立多執行緒的幾種方式

執行緒週期 1 新建狀態 使用new關鍵字或者thread類或其他子類建立乙個執行緒物件之後,該執行緒就處於新建狀態,他保持這個狀態知道程式start 這個狀態。2 就緒狀態 當執行緒物件呼叫了stsrt 方法後,這個執行緒就進入了就緒狀態,就緒狀態處於就緒佇列中,要等待ivm中線程排程器的排程。3...

多執行緒入門(1) 建立執行緒的幾種方式

用runnable方式建立執行緒 public class runnablestyle implements runnable public static void main string args 用thread方式實現執行緒 public class threadstyle extends th...

多執行緒 實現多執行緒的幾種方式

public class mythread extends thread mythread mythread1 newmythread mythread mythread2 newmythread mythread1.start mythread2.start public class mythre...