等待執行緒執行終止的 join 方法

2022-09-21 07:21:05 字數 447 閱讀 5981

本篇內容為執行緒專題 -- 執行緒的建立,狀態,工作過程

中的部分內容。 

在專案實踐中經常會遇到乙個場景,就是需要等待某幾件事情完成後才能繼續往下執行,比如多個執行緒載入資源,需要等待多個執行緒全部載入完畢再彙總處理。thread類中有乙個join方法就可以做這個事情, join方法則是thread類直接提供的,且join()是無參且返回值為void的方法。好比在b執行緒中呼叫a.join(),這時候b執行緒會讓出執行權給a執行緒,直到a執行緒執行完或者過了超時時間之後再繼續執行b執行緒。

從原始碼中可以看出 join() 方法底層還是通過 wait() 方法來實現的。

在多執行緒中有多種方法讓執行緒按特定順序執行,你可以用執行緒類的join()方法在乙個執行緒中啟動另乙個執行緒,另外乙個執行緒完成該執行緒繼續執行。為了確保三個執行緒的順序你應該先啟動最後乙個(t3呼叫t2,t2呼叫t1),這樣t1就會先完成而t3最後完成。

待補充

16,join(等待該執行緒終止)

join 用於臨時加入執行緒執行 package songyan 主線程讀到t1.join 主線程變為凍結狀態 放棄執行權 t1 執行結束 主線程恢復執行狀態 t2.start main執行緒,t2一起搶奪執行權 t1.start t2.start t1.join t1,t2 開啟 main執行緒執...

執行緒終止 等待 分離

執行緒終止有三種方式,包括 1.從執行緒函式return 對主線程不可使用 從main函式return相當於呼叫exit。2.執行緒可以呼叫pthread exit終止自己。3.乙個執行緒可以呼叫pthread cancel終止同一程序中的另外乙個執行緒。我們來認識幾個函式 pthread exit...

Java等待執行緒池終止

1 輪詢isterminated while service.isterminated 2 輪詢awaittermination while service.awaittermination 1,timeunit.seconds service表示執行緒池物件,當執行緒池終止時將自動跳出while迴...