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

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

Java并發編程學習CountDownLatch

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

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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日韩欧美国产精品第一页不卡 | 久久综合久久综合久久综合 | 欧美第一页在线观看 | 夜夜躁狠狠躁日日躁视频 | 亚洲精品98久久久久久中文字幕 | 精品视频久久 | 99久久国产综合精品成人影院 | 综合爱爱 | 天天操天天曰 | 亚洲一区二区三区影院 | 99热6这里只有精品 99热7 | 久久中字 | 久久精品视频一区二区三区 | chinese在线播放91国内 | 国产成人综合久久亚洲精品 | 俄罗斯一级毛片免费播放 | 日韩欧美理论 | 国产精品27页 | 337p欧洲日本大胆艺术 | 97天天做天天爱夜夜爽 | 狠狠干夜夜操 | 老司机午夜免费影院 | 国产日韩久久久久69影院 | 国产精品高清一区二区不卡 | 在线国产一区 | 国产精品久久久久久久久久影院 | 中文字幕精品久久 | 国产高清国内精品福利99久久 | 精品国产日韩一区三区 | 手机看片高清日韩精品 | 这里只有精品视频在线观看 | 99爱在线精品视频免费观看9 | 91情国产l精品国产亚洲区 | 国产欧美日韩图片一区二区 | 自拍偷自拍亚洲精品被多人伦好爽 | 日本一级淫片a免费播放 | 久久中文字幕综合不卡一二区 | 日本精品在线视频 | 亚洲六月丁香婷婷综合 | 久热精品香蕉在线视频 | 极品粉嫩粉嫩福利视频在线 |