大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

Java并發編程學習CountDownLatch

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

    基于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”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美午夜在线观看 | 久久乱69小说 | 精品久久久久久中文字幕2017 | 日韩国产中文字幕 | 深夜福利国产 | 夜夜狠狠狠狠 | 99久热在线精品视频播放6 | 美女毛片免费 | 精品免费福利视频 | 欧美啪啪毛片一区二区 | 久热中文字幕在线观看 | 精品麻豆国产 | 国产成人毛片视频不卡在线 | 日日摸日日碰夜夜爽久久 | 国内外一级毛片 | 韩国xxxx色视频在线观看 | 久久国产一区二区三区 | 国产小网站| 日本欧美一区二区三区在线观看 | 欧美在线观看一区二区三 | 91国在线视频| 久久国产精品视频 | 五月天婷五月天综合网在线 | 欧美性xxx久久 | 欧美精品四虎在线观看 | 欧美一级毛片日韩一级 | 看真人一级毛多毛片 | 日日日操 | 欧美.成人.综合在线 | 欧美开嫩苞实拍视频在线观看 | 亚州综合激情另类久久久 | 久青草国产高清在线视频 | 尹人视频在线观看 | 国产成人啪精品视频免费网 | 狠狠色先锋资源网 | 日韩欧美一级毛片精品6 | 久久久噜噜噜久久网 | 黄色片网站在线免费观看 | 午夜影院私人 | 男人在线资源 | 日韩免费毛片视频 |