java 中的併發工具類簡介

2021-07-10 15:09:39 字數 739 閱讀 1644

1、等待多執行緒完成的countdownlatch

countdownlatch允許乙個或多個執行緒等待其他執行緒完成操作。

2、同步屏障cyclicbarrier

cyclicbarrier的字面意思是可迴圈使用(cyclic)的屏障(barrier)。它要做的事情是,讓一組執行緒到達乙個屏障(也可以叫同步點)時被阻塞,直到最後乙個執行緒到達屏障時,屏障才會開門,所有被屏障攔截的執行緒才會繼續執行。

countdownlatch的計數器只能使用一次,而cyclicbarrier的計數器可以使用reset()方法重置。所以cyclicbarrier能處理更為複雜的業務場景。例如,如果計算發生錯誤,可以重置計數器,並讓執行緒重新執行一次。

3、控制併發執行緒數的semaphore

semaphore(訊號量)是用來控制同時訪問特定資源的執行緒數量,它通過協調各個執行緒,以保證合理的使用公共資源。

4、執行緒之間交換資料的exchanger

exchanger(交換者)是乙個用於執行緒間協作的工具類。exchanger用於進行執行緒間的資料交換。它提供乙個同步點,在這個同步點,兩個執行緒可以交換彼此的資料。這兩個執行緒通過exchange方法交換資料,如果第乙個執行緒先執行exchange()方法,它會一直等待第二個執行緒也執行exchange方法,當兩個執行緒都到達同步點時,這兩個執行緒就可以交換資料,將本執行緒生產出來的資料傳遞給對方。

java中的併發工具類

類名稱類的簡介 類的特點 countdownlatch 允許乙個或者多個執行緒等待其他執行緒完成之後再執行後續操作 countdownlatch提供了乙個計數器,只能初始化一次,但是提供了乙個await方法,允許設定乙個時間,當等待一段時間後,就會不再阻塞當前執行緒。cyclicbarrier 讓一...

併發工具類簡介

countdownlatch 閉鎖,也叫執行緒遞減鎖。對執行緒進行計數,在計數歸零之前執行緒會陷入阻塞 直到計數歸零為止,才會放開阻塞。用給定的計數初始化 countdownlatch。由於呼叫了 countdown 方法,所以在當前計數到達零之前,await 方法會一直受阻塞。之後,會釋放所有等待...

Java併發工具類

目錄 1.等待多執行緒完成的countdownlatch 2.同步屏障cyclicbarrier 3.控制併發執行緒數的semaphore 4.執行緒間交換資料的exchanger countdownlatch允許乙個或多個執行緒等待其他執行緒完成操作,類似於join方法。join的實現原理是不停的...