J.U.C系列(一)CountDownLatch的使用
生活随笔
收集整理的這篇文章主要介紹了
J.U.C系列(一)CountDownLatch的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CountDownLatch
它是用來控制一個或者多個線程等待多個線程。
它的實現原理是內部使用了一個ctn的計數器,當調用countDown()方法的時候計數器就執行減1操作直到減到0的的時候那些之前調用await()方法而在等待的線程就會被喚醒。
有一個場景可以很好理解這個關鍵字的使用:火箭發射案例。火箭發射的時候需要每個子程序都準備好才能發射,如何做到讓各個子程序異步的去執行自己的程序然后都準備完成再發射火箭呢?
demo如下
運行結果如下:
發射程序開始準備... pool-1-thread-1 開始處理子程序... pool-1-thread-1 處理時間為:8s pool-1-thread-2 開始處理子程序... pool-1-thread-2 處理時間為:9s pool-1-thread-5 開始處理子程序... pool-1-thread-4 開始處理子程序... pool-1-thread-3 開始處理子程序... pool-1-thread-4 處理時間為:8s pool-1-thread-5 處理時間為:2s pool-1-thread-3 處理時間為:7s pool-1-thread-5 準備就緒!!! pool-1-thread-3 準備就緒!!! pool-1-thread-1 準備就緒!!! pool-1-thread-4 準備就緒!!! pool-1-thread-2 準備就緒!!! 發射倒計時:10 發射倒計時:9 發射倒計時:8 發射倒計時:7 發射倒計時:6 發射倒計時:5 發射倒計時:4 發射倒計時:3 發射倒計時:2 發射倒計時:1 點火!!!總結
以上是生活随笔為你收集整理的J.U.C系列(一)CountDownLatch的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何理解java中String的不可变性
- 下一篇: BigDecimal的使用说明