Java建立執行緒的三種方式

2021-09-09 08:00:45 字數 1103 閱讀 6105

一、繼承thread類建立執行緒類

(1)定義thread類的子類,並重寫該類的run方法,該run方法的方法體就代 表了執行緒要完成的任務。因此把run()方法稱為執行體。

(2)建立thread子類的例項,即建立了執行緒物件。

(3)呼叫執行緒物件的start()方法來啟動該執行緒。

二、通過runnable介面建立執行緒類

(1)定義runnable介面的實現類,並重寫該介面的run()方法,該run()方法的方法體是該執行緒的執行緒執行體。

(2)建立 runnable實現類的例項,並依此例項作為thread的target來建立thread物件,該thread物件才是真正的執行緒物件。

(3)呼叫執行緒物件的start()方法來啟動該執行緒。

三、通過callable和future建立執行緒

(1)建立callable介面的實現類,並實現call()方法,該call()方法將作為執行緒執行體,並且有返回值。

(2)建立callable實現類的例項,使用futuretask類來包裝callable物件,該futuretask物件封裝了該callable物件的call()方法的返回值。

(3)使用futuretask物件作為thread物件的target建立並啟動新執行緒。

(4)呼叫futuretask物件的get()方法來獲得子執行緒執行結束後的返回值,呼叫get()方法會阻塞執行緒。

建立執行緒的三種方式的對比:

繼承thread類的方式建立多執行緒

優勢:編寫簡單,如果需要訪問當前執行緒,則無需使用thread.currentthread()方法,直接使用this即可獲得當前執行緒。

劣勢是:執行緒類已經繼承了thread類,所以不能再繼承其他父類。

實現runnable、callable介面的方式創見多執行緒

優勢是:執行緒類只是實現了runnable介面或callable介面,還可以繼承其他類。在這種方式下,多個執行緒可以共享同乙個target物件,適合多個相同執行緒來處理同乙份資源的情況。

劣勢是:程式設計稍微複雜,如果要訪問當前執行緒,則必須使用thread.currentthread()方法。

JAVA 建立執行緒的三種方式

1 繼承thread類 實現多執行緒 class mythread extends thread public void print 例項化 public class homework 2 runnable 介面實現多執行緒 可以避免單繼承侷限 class mythread implements r...

java建立執行緒的三種方式

步驟 1 建立自定義類並實現runable介面 2 例項化自定義的類 3 將自定義的類的例項作為引數傳給thread類,建立thread例項 4 呼叫thread例項的start 方法,啟動子程序 class threaddemo implements runnable system.out.pri...

java多執行緒建立的三種方式

如果用加鎖的多執行緒,最好使用redis的分布式鎖代替 加鎖的多執行緒非常影響效能,可能會導致伺服器卡死,宕機 1.繼承thread 無返回值 第一步 繼承thread public class person extends thread catch interruptedexception e f...