(1)定義thread類的子類,並重寫該類的run方法,該run方法的方法體就代表了執行緒要完成的任務。
因此把run()方法稱為執行體。
(2)建立thread子類的例項,即建立了執行緒物件。
(3)呼叫執行緒物件的start()方法來啟動該執行緒。
public class mythread extends thread
private void dosomething()
}
public class newthread
private static void dosomething()
}
我是乙個執行緒中的方法
我是乙個執行緒中的方法
我是乙個執行緒中的方法
newthread++++++++乙個執行緒中的
newthread++++++++乙個執行緒中的
newthread++++++++乙個執行緒中的
在main()方法裡建立乙個mythread物件,呼叫該物件的start()方法,start()方法會通過對系統底層的一系列操作,建立出乙個相應的執行緒,與當前執行緒併發執行。如果直接呼叫run()方法,程式將執行完run()方法後才會執行main()方法中後面的**,這樣就是單執行緒執行而不是多執行緒併發執行了。
二、通過runnable介面建立執行緒類
(1)定義runnable介面的實現類,並重寫該介面的run()方法,該run()方法的方法體
同樣是該執行緒的執行緒執行體。
(2)建立 runnable實現類的例項,並依此例項作為thread的target來建立thread物件,
該thread物件才是真正的執行緒物件。(不同的是,實現runnable介面的類中沒有
start()方法,所以要用thread構造個方法開啟執行緒)
(3)呼叫執行緒物件的start()方法來啟動該執行緒。
public class runnablethread implements runnable
private void dosomething()
}
public class runnablenewthread
private static void dolinesomething()
}
(1)建立callable介面的實現類,並實現call()方法,該call()方法將作為執行緒執行體,並且有返回值。
(2)建立callable實現類的例項,使用futuretask類來包裝callable物件,該futuretask物件封裝了
該callable物件的call()方法的返回值。
(3)使用futuretask物件作為thread物件的target建立並啟動新執行緒。
(4)呼叫futuretask物件的get()方法來獲得子執行緒執行結束後的返回值
public class callablethread implements callable
private void dosomething()
}
public class newthread catch (interruptedexception | executionexception e) }
private static void donewsomething()
}
首先建立callable介面的實現類callablethread,實現call()方法,並且有返回值。
callable介面是乙個帶泛型的介面,泛型的型別就是執行緒返回值的型別。
實現callable介面中的call()方法,方法的返回型別與泛型的型別相同。
callable不能直接獲取返回值,需要用futuretask在外部封裝一下再獲取返回值
採用實現runnable、callable介面的方式創見多執行緒時,優勢是:
執行緒類只是實現了runnable介面或callable介面,還可以繼承其他類。
在這種方式下,多個執行緒可以共享同乙個target物件,所以非常適合多個相同執行緒來處理同乙份資源的情況,從而可以將cpu、**和資料分開,形成清晰的模型,較好地體現了物件導向的思想。
劣勢是:
程式設計稍微複雜,如果要訪問當前執行緒,則必須使用thread.currentthread()方法。
使用繼承thread類的方式建立多執行緒時優勢是:
編寫簡單,如果需要訪問當前執行緒,則無需使用thread.currentthread()方法,直接使用this即可獲得當前執行緒。
劣勢是:
執行緒類已經繼承了thread類,所以不能再繼承其他父類。
執行緒的五種建立方式
執行緒的五種建立方式 1 繼承thread類,重寫run 方法,呼叫start 方法啟動執行緒public class testthread1 extends thread public static void main string args 2 實現runnable介面,重寫run 方法,建立r...
建立執行緒的4種方式
建立執行緒的四種方式 一 繼承thread類 繼承thread類建立執行緒的步驟為 1 建立乙個類繼承thread類,重寫run 方法,將所要完成的任務 寫進run 方法中 2 建立thread類的子類的物件 3 呼叫該物件的start 方法,該start 方法表示先開啟執行緒,然後呼叫run 方法...
執行緒通訊 3種方式
一 傳統執行緒通訊 synchronized wait notify object類的wait notify notifyall 三個方法必須由同步監視器物件來呼叫,分兩種情況 a 同步方法,該類預設例項 this 就是同步監視器,可以在同步方法中可以直接呼叫 b 同步 塊,同步監視器是synchr...