1. 程式人生 > >2 張圖,讓你一秒理解 CountDownLatch、CyclicBarrier

2 張圖,讓你一秒理解 CountDownLatch、CyclicBarrier

CountDownLatch (倒數閂,Latch:門閂)

經常用於 監聽某些初始化操作,等 初始化執行緒 全部執行完畢後,才通知 主執行緒 繼續工作

a) 即 一個執行緒處於阻塞的狀態下,他要收到 多少次通知,才能被 甦醒,並繼續往下執行
b) 注意:只能阻塞 一個執行緒
c) "countDown.countDown() 到了 0,並使得 countDown.await() 甦醒" 之後,仍舊能進行 countDown.countDown(),並且不會報錯;但是countDown.getCount() 始終為 0

 

CyclicBarrier
(同步屏障,cyclic:週期的,迴圈的,barrier:屏障)

場景假設:每個執行緒代表一個 跑步運動員,當 所有運動員 都準備好,才能一起出發,只要有一個人沒有準備好,那麼大家都要等待他

a) 注意:阻塞的是  每個執行緒