黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java并發編程學習CountDownLatch

Java并發編程學習CountDownLatch

更新時間:2020-04-30 10:59:07 來源:動力節點 瀏覽2276次

    基于AQS的前世今生,來學習并發工具類CountDownLatch。本文將從CountDownLatch的應用場景、源碼原理解析來學習這個并發工具類。

    1、應用場景

    CountDownLatch是并發包中用來控制一個或者多個線程等待其他線程完成操作的并發工具類。現以工作中的一個場景來描述下CountDownLatch的應用,代碼如下:

Java并發編程學習CountDownLatch

    在分析原理實現前,總結下CountDownLatch的作用就是阻塞其他線程直到條件允許后才釋放該阻塞,除了上述這個小案例,實際工作中還有很多可以使用CountDownLatch的場景,比如解析Excel文件時可以同時解析多個Sheet頁,所有的Sheet解析完成才算完成了Excel文件的解析。從這個代碼中也可以看到CountDownLatch的主要方法就是await和countDown,下面將以這兩個方法來分析下CountDownLatch的原理實現。

    2、源碼原理解析

    2.1await方法

    調用await方法會阻塞當前線程直到計數器的數值為0,方法如下:

Java并發編程學習CountDownLatch

    調用的是AQS的acquireSharedInterruptibly方法:

Java并發編程學習CountDownLatch

    其中tryAcquireShared依賴的是Sync的實現,和之前的ReentrantLock、ReentrantReadWriteLock及Semaphore相比,CountDownLatch的Sync只提供了一種方式,代碼如下:

Java并發編程學習CountDownLatch

    doAcquireSharedInterruptibly方法就不再贅述,和之前Semaphore的實現是一致的,本質上仍然是AQS同步隊列的入隊自旋等待。

    2.2countDown方法

    調用countDown方法會將計數器的數值減1直到計數器為0,方法如下:

Java并發編程學習CountDownLatch

    和Semaphore一樣,調用的是AQS的releaseShared方法:

Java并發編程學習CountDownLatch

    其中tryReleaseShared依賴的是Sync的實現,和之前的ReentrantLock、ReentrantReadWriteLock及Semaphore相比,CountDownLatch的Sync只提供了一種方式,代碼如下:

1588215468646646.pngJava并發編程學習CountDownLatch

    喚醒后續線程節點的doReleaseShared也不再贅述,和之前Semaphore的實現是一致的。

    總結:CountDownLatch類使用AQS同步狀態來表示計數。在await時,所有的線程進入同步隊列自旋等待,在countDown時,獲取閉鎖成功的線程會減少閉鎖的計數器,同時喚醒后續線程取獲取閉鎖,直到await中的計數器為0,獲取到閉鎖的線程才可以通過,執行下一步操作。

 以上就是動力節點java培訓機構的小編針對“Java并發編程學習CountDownLatch”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 天堂在线最新资源 | 柠檬福利第一导航在线 | 1024人成软件色www | 天天干夜夜躁 | 国产一级视频 | 草视频在线 | 欧美视频一区二区专区 | 在线观看成人小视频 | 男女午夜视频 | 欧美在线播放视频 | 亚洲日本中文字幕天天更新 | 欧美在线视频免费播放 | 国产欧美一区二区三区观看 | 男人天堂v | 一个人看的www免费视频 | 激情成人综合网 | 日本一区二区成人教育 | 吃奶呻吟打开双腿做受动态图 | 成人18免费视频 | 男女一进一出免费视频 | 资源在线www天堂 | 在线观看视频一区二区 | 最近最新中文字幕免费高清1 | 综合五月激情 | 日韩手机专区 | 久久婷婷是五月综合色狠狠 | 中文字幕日本一区久久 | 野外三级国产在线观看 | 国产精品精品国产 | 一级毛片视频免费观看 | 莉莉私人免费影院观看网站 | 在线观看永久免费 | 中文国产成人精品久久96 | 精品亚洲视频在线观看 | 亚洲一区成人 | 手机看片高清日韩精品 | 成年大片免费高清在线观看 | 国产视频色 | 免费在线观看污污视频 | 全部免费特黄特色大片视频 | 伊人久久大香焦 |