java-多執行緒-CountDownLatch(閉鎖) CyclicBarrier(柵欄) Semaphore(訊號量)-
(程式碼來源網路共享)
這幾個工具類其實說白了就是為了能夠更好控制執行緒之間的通訊問題~
CountDownLatch
是一個同步的輔助類,允許一個或多個執行緒一直等待,直到其它執行緒完成它們的操作。
常用的API其實就兩個:await()
和countDown()
例子:例子:rodert現在去做實習生了,其他的員工還沒下班,rodert不好意思先走,等其他的員工都走光了,rodert再走。
package threadMy;
import java.util.concurrent.CountDownLatch;
public class CountDownLatchTest {
public static void main(String[] args) {
final CountDownLatch countDownLatch = new CountDownLatch(5);
System.out.println("現在6點下班了.....");
// rodert執行緒啟動
new Thread(new Runnable() {
@Override
public void run() {
try {
// 這裡呼叫的是await()不是wait()
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("...其他的5個員工走光了,rodert終於可以走了");
}
}).start();
// 其他員工執行緒啟動
for (int i = 0; i < 5; i++) {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("員工xxxx下班了");
countDownLatch.countDown();
}
}).start();
}
}
}
CyclicBarrier
相關文章
- java多執行緒10:併發工具類CountDownLatch、CyclicBarrier和SemaphoreJava執行緒CountDownLatch
- 探秘多執行緒-閉鎖、柵欄與非同步編排執行緒非同步
- 強大的三個工具類、CountDownLatch 閉鎖 、CyclicBarrier 、SemaphoreCountDownLatch
- Python-訊號量和執行緒池-semaphore ThreadPollPython執行緒thread
- Java多執行緒併發工具類-訊號量Semaphore物件講解Java執行緒物件
- Java多執行緒—執行緒同步(單訊號量互斥)Java執行緒
- java 多執行緒CountDownLatchJava執行緒CountDownLatch
- CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析CountDownLatch
- CountDownLatch、CyclicBarrier、Semaphore、Exchanger 的詳細解析CountDownLatch
- java多執行緒系列:CountDownLatchJava執行緒CountDownLatch
- 併發-6-wait、notify、Semaphore、CountDownLatch、CyclicBarrierAICountDownLatch
- Java 併發工具類 CountDownLatch、CyclicBarrier、Semaphore、ExchangerJavaCountDownLatch
- Java 多執行緒基礎 - CyclicBarrierJava執行緒
- 面試官:說說CountDownLatch,CyclicBarrier,Semaphore的原理?面試CountDownLatch
- java多執行緒系列:Semaphore和ExchangerJava執行緒
- 多執行緒_鎖執行緒
- Java多執行緒(2)執行緒鎖Java執行緒
- Java多執行緒同步工具類之CyclicBarrierJava執行緒
- 多執行緒學習(二)CountDownLunch與CyclicBarrier執行緒
- Java多執行緒同步工具類之CountDownLatchJava執行緒CountDownLatch
- JAVA-多執行緒(關鍵字:synchronized)Java執行緒synchronized
- Java多執行緒同步工具類之SemaphoreJava執行緒
- 利用訊號量實現執行緒順序執行執行緒
- 原始碼分析:CyclicBarrier 之迴圈柵欄原始碼
- python多執行緒中:如何關閉執行緒?Python執行緒
- Java-執行緒間通訊小結Java執行緒
- 執行緒同步(windows平臺):訊號量執行緒Windows
- 關於c#多執行緒中的幾個訊號量C#執行緒
- JUC併發程式設計之Semaphore、CountDownLatch、CyclicBarrier協同工具程式設計CountDownLatch
- 07 併發工具類CountDownLatch、CyclicBarrier、Semaphore使用及原始碼分析CountDownLatch原始碼
- 【高併發】AQS中的CountDownLatch、Semaphore與CyclicBarrier用法總結AQSCountDownLatch
- Java-基礎程式設計-多執行緒Java程式設計執行緒
- iOS多執行緒安全-13種執行緒鎖?iOS執行緒
- 多執行緒(2)-執行緒同步互斥鎖Mutex執行緒Mutex
- 多執行緒基礎(十九):Semaphore原始碼分析執行緒原始碼
- JavaSE_多執行緒入門 執行緒安全 死鎖 狀態 通訊 執行緒池Java執行緒
- 10. Semaphore ||(訊號量)
- 圖解程式執行緒、互斥鎖與訊號量-看完不懂你來打我圖解執行緒