一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - Java中的5種同步輔助類介紹

Java中的5種同步輔助類介紹

2019-11-20 15:23Java教程網(wǎng) JAVA教程

你提交了一些任務(wù),但你想等它們都完成了再做另外一些事情;你提交了一些任務(wù),但是不想讓它們立刻執(zhí)行,等你喊123開(kāi)始的時(shí)候,它們才開(kāi)始執(zhí)行;等等這些場(chǎng)景,線程之間需要相互配合,或者等待某一個(gè)條件成熟執(zhí)行。這些

當(dāng)你使用synchronized關(guān)鍵字的時(shí)候,是通過(guò)互斥器來(lái)保障線程安全以及對(duì)共享資源的同步訪問(wèn)。線程間也經(jīng)常需要更進(jìn)一步的協(xié)調(diào)執(zhí)行,來(lái)完成復(fù)雜的并發(fā)任務(wù),比如wait/notify模式就是一種在多線程環(huán)境下的協(xié)調(diào)執(zhí)行機(jī)制。

通過(guò)API來(lái)獲取和釋放鎖(使用互斥器)或者調(diào)用wait/notify等方法都是底層調(diào)用的方式。進(jìn)一步來(lái)說(shuō),有必要為線程同步創(chuàng)建更高層次的抽象。通常用到的同步輔助類,就是對(duì)2個(gè)或多個(gè)線程間的同步活動(dòng)機(jī)制做進(jìn)一步封裝,其內(nèi)部原理是通過(guò)使用現(xiàn)有的底層API來(lái)實(shí)現(xiàn)復(fù)雜的線程間的協(xié)調(diào)。

有5種同步輔助類適用于常見(jiàn)的同步場(chǎng)景:

1. Semaphore 信號(hào)量是一類經(jīng)典的同步工具。信號(hào)量通常用來(lái)限制線程可以同時(shí)訪問(wèn)的(物理或邏輯)資源數(shù)量。

2.CountDownLatch 一種非常簡(jiǎn)單、但很常用的同步輔助類。其作用是在完成一組正在其他線程中執(zhí)行的操作之前,允許一個(gè)或多個(gè)線程一直阻塞。

3.CyclicBarrier 一種可重置的多路同步點(diǎn),在某些并發(fā)編程場(chǎng)景很有用。它允許一組線程互相等待,直到到達(dá)某個(gè)公共的屏障點(diǎn) (common barrier point)。在涉及一組固定大小的線程的程序中,這些線程必須不時(shí)地互相等待,此時(shí) CyclicBarrier 很有用。因?yàn)樵?barrier在釋放等待線程后可以重用,所以稱它為循環(huán)的barrier。

4.Phaser 一種可重用的同步屏障,功能上類似于CyclicBarrier和CountDownLatch,但使用上更為靈活。非常適用于在多線程環(huán)境下同步協(xié)調(diào)分階段計(jì)算任務(wù)(Fork/Join框架中的子任務(wù)之間需同步時(shí),優(yōu)先使用Phaser)

5.Exchanger 允許兩個(gè)線程在某個(gè)匯合點(diǎn)交換對(duì)象,在某些管道設(shè)計(jì)時(shí)比較有用。Exchanger提供了一個(gè)同步點(diǎn),在這個(gè)同步點(diǎn),一對(duì)線程可以交換數(shù)據(jù)。每個(gè)線程通過(guò)exchange()方法的入口提供數(shù)據(jù)給他的伙伴線程,并接收他的伙伴線程提供的數(shù)據(jù)并返回。當(dāng)兩個(gè)線程通過(guò)Exchanger交換了對(duì)象,這個(gè)交換對(duì)于兩個(gè)線程來(lái)說(shuō)都是安全的。Exchanger可以認(rèn)為是 SynchronousQueue 的雙向形式,在運(yùn)用到遺傳算法和管道設(shè)計(jì)的應(yīng)用中比較有用。

延伸 · 閱讀

精彩推薦
  • JAVA教程求1000階乘的結(jié)果末尾有多少個(gè)0

    求1000階乘的結(jié)果末尾有多少個(gè)0

    題目是:求1000!的結(jié)果末尾有多少個(gè)0,解題思路:兩個(gè)素?cái)?shù)2、5,相乘即可得到10,我們可以認(rèn)為,有多少組2、5,結(jié)尾就有多少個(gè)0,下面是代碼,需要的朋...

    java教程網(wǎng)3932019-11-10
  • JAVA教程java排序去重示例分享

    java排序去重示例分享

    這篇文章主要介紹了java排序去重示例,對(duì)String strs = "ZZZ BBB AAA OOO ZZZ AAA ZZZ"計(jì)算出現(xiàn)個(gè)數(shù),排序去重,需要的朋友可以參考下 ...

    java技術(shù)網(wǎng)2272019-11-08
  • JAVA教程java讀寫(xiě)oracle的blob字段示例

    java讀寫(xiě)oracle的blob字段示例

    這篇文章主要介紹了java讀寫(xiě)oracle的blob字段示例,需要的朋友可以參考下 ...

    java教程網(wǎng)3172019-11-10
  • JAVA教程java字符串拼接與性能分析詳解

    java字符串拼接與性能分析詳解

    在JAVA中拼接兩個(gè)字符串的最簡(jiǎn)便的方式就是使用操作符”+”。如果你用”+”來(lái)連接固定長(zhǎng)度的字符串,可能性能上會(huì)稍受影響,但是如果你是在循環(huán)中來(lái)...

    java技術(shù)網(wǎng)2132019-10-27
  • JAVA教程java動(dòng)態(tài)代理和cglib動(dòng)態(tài)代理示例分享

    java動(dòng)態(tài)代理和cglib動(dòng)態(tài)代理示例分享

    這篇文章主要介紹了java動(dòng)態(tài)代理和cglib動(dòng)態(tài)代理示例,JDK1.3之后,Java提供了動(dòng)態(tài)代理的技術(shù),允許開(kāi)發(fā)者在運(yùn)行期間創(chuàng)建接口的代理實(shí)例,下面我們使用示...

    java教程網(wǎng)3082019-11-15
  • JAVA教程簡(jiǎn)單說(shuō)說(shuō)Java SE、Java EE、Java ME三者之間的區(qū)別

    簡(jiǎn)單說(shuō)說(shuō)Java SE、Java EE、Java ME三者之間的區(qū)別

    本篇文章小編就為大家簡(jiǎn)單說(shuō)說(shuō)Java SE、Java EE、Java ME三者之間的區(qū)別。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助 ...

    java之家4072019-10-16
  • JAVA教程scala中常用特殊符號(hào)詳解

    scala中常用特殊符號(hào)詳解

    這篇文章主要介紹了scala中常用特殊符號(hào)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨...

    咸魚(yú)2462019-07-08
  • JAVA教程java生成json數(shù)據(jù)示例

    java生成json數(shù)據(jù)示例

    這篇文章主要介紹了java生成json數(shù)據(jù)示例,需要的朋友可以參考下 ...

    zxhpj4722019-11-18
主站蜘蛛池模板: 亚洲 欧美 国产 综合首页 | 女明星放荡高h日常生活 | 日本免费一区二区三区a区 日本免费三片在线观看 | 性色xxx | 99精品国产自在现线观看 | 好大好硬好深好爽gif图 | 亚洲精品一二区 | 扒开放荡老师裙子猛烈的进入 | 日韩成人影视 | 动漫jk美女被爆羞羞漫画 | 精品成人在线 | 久久亚洲精品AV成人无码 | 91麻豆国产精品91久久久 | 污污在线免费观看 | 亚洲一区二区三区福利在线 | 亚洲精品久久久久久婷婷 | 射18p| 亚洲酒色1314狠狠做 | 日本 视频 在线 | 欧美艳星kagneyiynn | 黄色a | 国产成人精品免费大全 | 1769在线观看 | 亚洲男人天堂2023 | 天码毛片一区二区三区入口 | 国产精品一久久香蕉产线看 | 猛h辣h高h文湿校园1v1 | 好男人资源免费播放 | 99视频精品全部 在线 | 美女岳肉太深了使劲 | 97se狠狠狠狠狼亚洲综合网 | 午夜毛片在线观看 | 久久国产综合精品欧美 | aaaa黄色片 | 四虎 2022 永久网站 | 91精品久久国产青草 | kk4444在线影视播放 | 狠狠色| freexxx性欧美3d动漫 | 日韩欧美中文在线 | 2021年国内自拍 |