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
- 探秘多執行緒-閉鎖、柵欄與非同步編排執行緒非同步
- Java:多執行緒等待所有執行緒結束(CountDownLatch/CyclicBarrier) .Java執行緒CountDownLatch
- Java多執行緒20:多執行緒下的其他元件之CountDownLatch、Semaphore、ExchangerJava執行緒元件CountDownLatch
- 執行緒執行順序——CountDownLatch、CyclicBarrier 、join()、執行緒池執行緒CountDownLatch
- Java多執行緒併發工具類-訊號量Semaphore物件講解Java執行緒物件
- windows多執行緒同步--訊號量Windows執行緒
- CyclicBarrier、CountDownLatch與Semaphore的小記CountDownLatch
- Python-訊號量和執行緒池-semaphore ThreadPollPython執行緒thread
- Java多執行緒—執行緒同步(單訊號量互斥)Java執行緒
- iOS多執行緒非同步訊號量iOS執行緒非同步
- CountDownLatch、CyclicBarrier、Semaphore、Exchanger 的詳細解析CountDownLatch
- CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析CountDownLatch
- Java併發之CountDownLatch、CyclicBarrier和SemaphoreJavaCountDownLatch
- Java多執行緒——SemaphoreJava執行緒
- java 多執行緒CountDownLatchJava執行緒CountDownLatch
- Java 併發工具類 CountDownLatch、CyclicBarrier、Semaphore、ExchangerJavaCountDownLatch
- 面試官:說說CountDownLatch,CyclicBarrier,Semaphore的原理?面試CountDownLatch
- java多執行緒系列:CountDownLatchJava執行緒CountDownLatch
- java 多執行緒 CountDownLatch用法Java執行緒CountDownLatch
- 併發-6-wait、notify、Semaphore、CountDownLatch、CyclicBarrierAICountDownLatch
- Java併發程式設計:CountDownLatch、CyclicBarrier和SemaphoreJava程式設計CountDownLatch
- Java 多執行緒基礎 - CyclicBarrierJava執行緒
- java多執行緒系列:Semaphore和ExchangerJava執行緒
- 10. Semaphore ||(訊號量)
- 多執行緒_鎖執行緒
- Java併發工具類(柵欄CyclicBarrier)Java
- JavaThread多執行緒同步、鎖、通訊Javathread執行緒
- Java多執行緒同步工具類之CyclicBarrierJava執行緒
- 多執行緒學習(二)CountDownLunch與CyclicBarrier執行緒
- 利用訊號量實現執行緒順序執行執行緒
- 執行緒同步(windows平臺):訊號量執行緒Windows
- VC訊號量和執行緒的用法執行緒
- Java多執行緒(2)執行緒鎖Java執行緒
- CyclicBarrier And CountDownLatchCountDownLatch
- 關於c#多執行緒中的幾個訊號量C#執行緒
- C++ 多執行緒框架 (2):Mutex 互斥和 Sem 訊號量C++執行緒框架Mutex
- 唯快不破:【多執行緒】使用訊號量進行同步執行緒