cyclibarrier :柵欄
作用: 可以使一組執行緒在達到同乙個屏障之前阻塞,當最後乙個執行緒到達屏障時,屏障開啟,這一組執行緒繼續
往下執行
構造方法:
new cyclicbarries(int parties)
parties 執行緒組的數量,當只有部分執行緒到達屏障時,該部分執行緒阻塞,當所有執行緒都到達屏障時,屏障放行
主要方法:
await : 讓當前執行緒等待,當等待執行緒數等於指定數目時,喚醒所有的執行緒
reset: 可以重置barrier狀態,開始新的barries
案例如下:
public class cyclicbarriesdemo
public static void test() catch (interruptedexception e) catch (brokenbarrierexception e)
system.out.println("一號線程開始跑了");
}).start();
new thread(() -> catch (interruptedexception e) catch (brokenbarrierexception e)
system.out.println("二號線程資料開始跑了");
}).start();
new thread(() -> catch (interruptedexception e) catch (brokenbarrierexception e)
system.out.println("三號執行緒資料開始跑了");
}).start();
new thread(() -> catch (interruptedexception e) catch (brokenbarrierexception e)
system.out.println("四號線程開始跑了哦");
}).start();
}}
執行結果如下:
4
主線程結束執行
一號線程資料準備完畢
二號線程資料準備完畢
三號執行緒資料準備完畢
四號線程資料準備完畢
四號線程開始跑了哦
一號線程開始跑了
三號執行緒資料開始跑了
二號線程資料開始跑了
併發工具類之 CyclicBarrier
cyclicbarrier 字面意思是可迴圈 cyclic 的屏障 barrier 它要做的事情是讓一組執行緒到達屏障時被阻塞,直到最後乙個執行緒也到達屏障,屏障才會開門,所有被屏障攔截的執行緒才會繼續執行。cyclicbarrier 有兩個構造方法,我們先來看第乙個 cyclicbarrier i...
併發工具類之 Exchanger
exchanger 交換者 是乙個用於執行緒間協作的工具類。exchanger 用於進行執行緒間的資料交換。兩個執行緒通過exchange 方法交換資料,第乙個執行緒執行到exchange 方法後會一直等待第二個執行緒也執行exchange 方法,當兩個執行緒都到達同步點後,這兩個執行緒就可以交換資...
Java併發工具類之CyclicBarrier
cyclicbarrier的意思是可迴圈使用的屏障。它可以讓一組執行緒到達乙個屏障時被阻塞,直到最後乙個執行緒到達屏障時,屏障才會開門,所有阻塞的執行緒才會繼續執行。它就好像一道關卡,只有所有的部隊 執行緒 都到了才能放行。部分原始碼 public class cyclicbarrier 可以看到,...