Java線程間的通信

http://wingjay.com/2017/04/09/Java%E9%87%8C%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%BA%BF%E7%A8%8B%E9%97%B4%E9%80%9A%E4%BF%A1%EF%BC%9F/

1弦蹂、thread.join狡刘。

在線程B中加上線程A A.join()方法會(huì)讓線程B等到線程A運(yùn)行完畢后執(zhí)行。

2晚胡、object.wait()醋虏,object.notify()飘蚯。

首先創(chuàng)建一個(gè)A和B線程共享的對(duì)象鎖lock = new Object(); 然后在A和B的執(zhí)行代碼塊加上synchronized鎖

線程A獲得鎖開始執(zhí)行睁本,調(diào)用lock.wait()檀葛,交出鎖的控制權(quán)队丝,線程B獲得鎖開始執(zhí)行靡馁,執(zhí)行結(jié)束后調(diào)用lock.notify()方法,喚醒正在wait的線程A,繼續(xù)執(zhí)行机久。

3臭墨、CountDownLatch? countDownLatch.await(),countDownLatch.countDown膘盖。

首先創(chuàng)建一個(gè)CountDownLatch對(duì)象胧弛,構(gòu)造參數(shù)傳遞需要等待的數(shù)量4,先創(chuàng)建一個(gè)線程D開始執(zhí)行衔憨,在線程D中調(diào)用countDownLatch.await()方法進(jìn)入等待叶圃,直到計(jì)數(shù)變?yōu)?,一次創(chuàng)建線程A,B,C践图,每個(gè)線程執(zhí)行結(jié)束時(shí)調(diào)用countDownLatch.countDown方法掺冠,該方法將會(huì)將計(jì)數(shù)值減少1。當(dāng)所有其他線程執(zhí)行完,計(jì)數(shù)值為0德崭,等待線程D中的wait方法退出斥黑,開始執(zhí)行后續(xù)操作。

4眉厨、CyclicBarrier?cyclicBarrier.await();

首先創(chuàng)建一個(gè)CyclicBarrier對(duì)象锌奴,構(gòu)造參數(shù)傳入需要等待的數(shù)據(jù),然后依次創(chuàng)建線程ABC,每個(gè)線程中做不同時(shí)長(zhǎng)的事務(wù)憾股,線程內(nèi)調(diào)用cyclicBarrier.await()方法鹿蜀,進(jìn)入等待狀態(tài),當(dāng)所有線程都調(diào)用完await方式后服球,所有線程開始同時(shí)執(zhí)行后續(xù)流程茴恰。

5、FutureTask? ?Callable

首先創(chuàng)建一個(gè)Callable接口斩熊,在call方法中執(zhí)行需要做的事件往枣。然后new一個(gè)FutureTask任務(wù),構(gòu)造參數(shù)傳入Callable接口的實(shí)例粉渠,然后在創(chuàng)建一個(gè)線程并啟動(dòng)分冈,線程參數(shù)傳入的就是這個(gè)FutureTask任務(wù)。當(dāng)我們調(diào)用futureTask.get獲取子線程執(zhí)行結(jié)果時(shí)霸株,會(huì)阻塞主線程雕沉,當(dāng)子線程執(zhí)行結(jié)束后,futureTask.get返回結(jié)果淳衙,主線程恢復(fù)蘑秽。如果不希望阻塞主線程饺著,可以考慮利用?ExecutorService箫攀,把?FutureTask?放到線程池去管理執(zhí)行


6、sleep() 和 wait() 的區(qū)別就是 調(diào)用sleep方法的線程不會(huì)釋放對(duì)象鎖幼衰,而調(diào)用wait() 方法會(huì)釋放對(duì)象鎖

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末靴跛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子渡嚣,更是在濱河造成了極大的恐慌梢睛,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件识椰,死亡現(xiàn)場(chǎng)離奇詭異绝葡,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)腹鹉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門藏畅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人功咒,你說(shuō)我怎么就攤上這事愉阎〗时模” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵榜旦,是天一觀的道長(zhǎng)幽七。 經(jīng)常有香客問(wèn)我,道長(zhǎng)溅呢,這世上最難降的妖魔是什么澡屡? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮咐旧,結(jié)果婚禮上挪蹭,老公的妹妹穿的比我還像新娘。我一直安慰自己休偶,他們只是感情好梁厉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著踏兜,像睡著了一般词顾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碱妆,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天肉盹,我揣著相機(jī)與錄音,去河邊找鬼疹尾。 笑死上忍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的纳本。 我是一名探鬼主播窍蓝,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼繁成!你這毒婦竟也來(lái)了吓笙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤巾腕,失蹤者是張志新(化名)和其女友劉穎面睛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尊搬,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叁鉴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了佛寿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幌墓。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出克锣,到底是詐尸還是另有隱情茵肃,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布袭祟,位于F島的核電站验残,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏巾乳。R本人自食惡果不足惜您没,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胆绊。 院中可真熱鬧氨鹏,春花似錦、人聲如沸压状。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)种冬。三九已至镣丑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間娱两,已是汗流浹背莺匠。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留十兢,地道東北人趣竣。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像旱物,于是被迫代替她去往敵國(guó)和親遥缕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • T101. Symmetric Tree【Easy】 題目 給一個(gè)二叉樹异袄,確認(rèn)這個(gè)是不是自己的鏡像(即圍繞其中心對(duì)...
    草稿紙反面閱讀 468評(píng)論 0 4
  • 4月22日通砍。我的球球63天了玛臂。
    曦寶閱讀 80評(píng)論 0 0
  • 每個(gè)人都有他的優(yōu)點(diǎn)或者是缺點(diǎn)烤蜕,有讓人喜歡的一面,也有人惹人厭的一面迹冤,我們總是控制不住的去抒發(fā)內(nèi)心的憤慨讽营,事后有糾...
    沐柒染閱讀 330評(píng)論 0 0
  • 有一個(gè)地方叫美人窩兒,美人窩兒里沒(méi)有我泡徙,雖然沒(méi)有我橱鹏,我卻知道她們的故事,不信,往下看呀莉兰! 玉米挑围,四十歲出頭,是個(gè)挺...
    楊愛民閱讀 505評(píng)論 0 3