JAVA柵欄
JAVA併發程式設計實踐 83頁
柵欄與閉鎖不同的是,柵欄可以重複使用。
柵欄與閉鎖不同的是,柵欄可以重複使用。
-
import java.util.concurrent.BrokenBarrierException;
-
import java.util.concurrent.CyclicBarrier;
-
-
public class Test {
-
// 一個同步輔助類,它允許一組執行緒互相等待,直到到達某個公共屏障點 (common barrier point)
-
final CyclicBarrier barrier;
-
-
// 執行緒數
-
int count;
-
-
class Worker implements Runnable {
-
int index;
-
-
Worker(int index) {
-
this.index = index;
-
}
-
-
public void run() {
-
System.out.println("第" + index + "個執行緒休眠" + (2 * index) + "秒!");
-
try {
-
Thread.sleep(2000 * index);
-
} catch (InterruptedException e) {
-
e.printStackTrace();
-
}
-
System.out.println("第" + index + "個執行緒結束休眠!");
-
-
try {
-
// 等待其它執行緒都處理完畢後,再繼續以下程式碼的執行
-
barrier.await();
-
} catch (InterruptedException e) {
-
e.printStackTrace();
-
} catch (BrokenBarrierException e) {
-
e.printStackTrace();
-
}
-
-
System.out.println(index);
-
}
-
}
-
-
public Test(int count) {
-
this.count = count;
-
-
// 公共屏障點 等待到5個執行緒後,執行相應的barrierAction
-
barrier = new CyclicBarrier(count, new Runnable() {
-
public void run() {
-
System.out.println("全部執行緒已執行完畢!");
-
}
-
});
-
-
for (int i = 1; i <= this.count; i++) {
-
new Thread(new Worker(i)).start();
-
}
-
}
-
-
public static void main(String[] args) {
-
new Test(5);
-
}
- }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1164727/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java併發工具類(柵欄CyclicBarrier)Java
- 攻防世界-柵欄密碼密碼
- 修理柵欄;及排列木樁分析
- 兄弟數字;及修理柵欄分析
- lintcode-514-柵欄染色
- 原始碼分析:CyclicBarrier 之迴圈柵欄原始碼
- CUDA學習筆記之柵欄同步筆記
- java-多執行緒-CountDownLatch(閉鎖) CyclicBarrier(柵欄) Semaphore(訊號量)-Java執行緒CountDownLatch
- bugku——聰明的小羊(柵欄密碼)密碼
- iOS-GCD常用函式和柵欄函式iOSGC函式
- 閉鎖和柵欄的區分以及適用場景
- 探秘多執行緒-閉鎖、柵欄與非同步編排執行緒非同步
- P2731 [USACO3.3] 騎馬修柵欄 Riding the Fences
- Python arcpy建立柵格、批次拼接柵格Python
- BZOJ 1600 [Usaco2008 Oct]建造柵欄:dp【字首和優化】優化
- 《Java專欄》— 初學JavaJava
- 光柵化理解
- 洛谷 P2731 騎馬修柵欄 Riding the Fences之尤拉路徑板子
- java高併發系列 - 第17天:JUC中的迴圈柵欄CyclicBarrier常見的6種使用場景及程式碼示例Java
- bs --- 柵格系統
- java 部分隱藏欄位Java
- java欄位格式化Java
- bootstrap解析-柵格系統boot
- 柵格影象的處理
- 《Java專欄》 課題二:Java深入淺出Java
- 【譯】4. Java反射——欄位Java反射
- 初學 Bootstrap 柵格系統boot
- 第 5 章 柵格系統
- 利用GDAL實現柵格影像差值計算及Geoserver自動釋出柵格影像Server
- Java欄位初始化規律Java
- 【學習圖片】04:光柵影像
- 將多個JSON欄位對映到單個Java欄位JSONJava
- 寫在專欄前-Java那些事兒Java
- Bootstrap柵格佈局原始碼解讀boot原始碼
- 超大影像柵格轉向量快速實現
- 有關css柵格系統的故事CSS
- Bootstrap柵格系統學習總結boot
- bootstrap 柵格系統 列巢狀 列偏移boot巢狀