一起在java1.5被引入的并發(fā)工具類還有CountDownLatch、CyclicBarrier、Semaphore、ConcurrentHashMap和BlockingQueue,它們都存在于java.util.concurrent包下。
CountDownLatch
CountDownLatch 概念
CountDownLatch這個類能夠使一個線程等待其他線程完成各自的工作后再執(zhí)行。例如,應用程序的主線程希望在負責啟動框架服務的線程已經(jīng)啟動所有的框架服務之后再執(zhí)行。
CountDownLatch是通過一個計數(shù)器來實現(xiàn)的,計數(shù)器的初始值為線程的數(shù)量。每當一個線程完成了自己的任務后,計數(shù)器的值就會減1。當計數(shù)器值到達0時,它表示所有的線程已經(jīng)完成了任務,然后在閉鎖上等待的線程就可以恢復執(zhí)行任務。
圖示:
偽代碼:
//Main thread start//Create CountDownLatch for N threads //Create and start N threads //Main thread wait on latch //N threads completes there tasks are returns//Main thread resume execution
CountDownLatch 如何工作
CountDownLatch.java類中定義的構(gòu)造函數(shù):
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26