Java多執行緒建立的三種方式與對比

2021-08-28 09:06:08 字數 924 閱讀 9782

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

1、定義thread類的子類,並重寫該類的run()方法,該run()方法的方法體代表了執行緒需要完成的任務,即執行緒的執行體。

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

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

// 通過繼承thread類來建立執行緒類

public class firstthread extends thread catch (exception ex) {

ex.printstacktrace();

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

通過繼承thread類或實現runnable、callable介面都可以實現多執行緒,不過實現runnable介面與實現callable介面的方式基本相同,只是callable介面裡定義的方法有返回值,可以宣告丟擲異常而已。因為可以將實現runnable介面和callable介面歸為一種方式。這種方式與繼承thread方式之間的主要差別如下:

採用實現runnable、callable介面的方式建立多執行緒的優缺點:

1、執行緒類只是實現了runnable介面或callable介面,還可以繼承其他類。

2、在此方式下,多個執行緒可以共享同乙個target物件,所以非常適合多個相同執行緒來處理同乙份資源的情況,從而可以將cpu、**和資料分開,形成清晰的模型,較好地體現了物件導向的思想。

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

採用繼承thread類的方式建立多執行緒的優缺點:

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

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

一般推薦採用實現runnable介面、callable介面的方式來建立多執行緒。

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

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

JAVA多執行緒(一) 建立執行緒的三種方式

程式 program,是乙個靜態概念 指令集 程序 process,是乙個動態概念 由作業系統排程程式 執行緒 thread,是程序中乙個 單一的連續控制流程 在程序內多條執行路徑 是乙個輕量級的執行緒 一 繼承至thread,重寫run 方法 使用執行緒 1.建立子類物件 2.呼叫start 方法...

java多執行緒三種方式

有三種 1 繼承thread類,重寫run函式 建立 class xx extends thread 開啟執行緒 物件.start 啟動執行緒,run函式執行 2 實現runnable介面,重寫run函式 開啟執行緒 thread t new thread 物件 建立執行緒物件 t.start 3 ...