Java 線程 - sleep澎羞、join、yield 有什么區(qū)別

學(xué)習(xí)完整課程請(qǐng)移步 互聯(lián)網(wǎng) Java 全棧工程師

sleep()

sleep() 方法需要指定等待的時(shí)間敛苇,它可以讓當(dāng)前正在執(zhí)行的線程在指定的時(shí)間內(nèi)暫停執(zhí)行妆绞,進(jìn)入阻塞狀態(tài),該方法既可以讓其他同優(yōu)先級(jí)或者高優(yōu)先級(jí)的線程得到執(zhí)行的機(jī)會(huì)枫攀,也可以讓低優(yōu)先級(jí)的線程得到執(zhí)行機(jī)會(huì)括饶。但是 sleep() 方法不會(huì)釋放“鎖標(biāo)志”,也就是說(shuō)如果有 synchronized 同步塊来涨,其他線程仍然不能訪問(wèn)共享數(shù)據(jù)图焰。

wait()

wait() 方法需要和 notify()notifyAll() 兩個(gè)方法一起介紹,這三個(gè)方法用于協(xié)調(diào)多個(gè)線程對(duì)共享數(shù)據(jù)的存取扫夜,所以必須在 synchronized 語(yǔ)句塊內(nèi)使用楞泼,也就是說(shuō),調(diào)用 wait()笤闯,notify()notifyAll() 的任務(wù)在調(diào)用這些方法前必須擁有對(duì)象的鎖堕阔。注意,它們都是 Object 類(lèi)的方法颗味,而不是 Thread 類(lèi)的方法超陆。

wait() 方法與 sleep() 方法的不同之處在于,wait() 方法會(huì)釋放對(duì)象的“鎖標(biāo)志”。當(dāng)調(diào)用某一對(duì)象的 wait() 方法后时呀,會(huì)使當(dāng)前線程暫停執(zhí)行张漂,并將當(dāng)前線程放入對(duì)象等待池中,直到調(diào)用了 notify() 方法后谨娜,將從對(duì)象等待池中移出任意一個(gè)線程并放入鎖標(biāo)志等待池中航攒,只有鎖標(biāo)志等待池中的線程可以獲取鎖標(biāo)志,它們隨時(shí)準(zhǔn)備爭(zhēng)奪鎖的擁有權(quán)趴梢。當(dāng)調(diào)用了某個(gè)對(duì)象的 notifyAll() 方法漠畜,會(huì)將對(duì)象等待池中的所有線程都移動(dòng)到該對(duì)象的鎖標(biāo)志等待池。

除了使用 notify()notifyAll() 方法坞靶,還可以使用帶毫秒?yún)?shù)的 wait(long timeout) 方法憔狞,效果是在延遲 timeout 毫秒后,被暫停的線程將被恢復(fù)到鎖標(biāo)志等待池彰阴。

此外瘾敢,wait()notify()notifyAll() 只能在 synchronized 語(yǔ)句中使用尿这,但是如果使用的是 ReenTrantLock 實(shí)現(xiàn)同步簇抵,該如何達(dá)到這三個(gè)方法的效果呢?解決方法是使用 ReenTrantLock.newCondition() 獲取一個(gè) Condition 類(lèi)對(duì)象射众,然后 Conditionawait()正压,signal() 以及 signalAll() 分別對(duì)應(yīng)上面的三個(gè)方法。

yield()

yield() 方法和 sleep() 方法類(lèi)似责球,也不會(huì)釋放“鎖標(biāo)志”,區(qū)別在于拓劝,它沒(méi)有參數(shù)雏逾,即 yield() 方法只是使當(dāng)前線程重新回到可執(zhí)行狀態(tài),所以執(zhí)行 yield() 的線程有可能在進(jìn)入到可執(zhí)行狀態(tài)后馬上又被執(zhí)行郑临,另外 yield() 方法只能使同優(yōu)先級(jí)或者高優(yōu)先級(jí)的線程得到執(zhí)行機(jī)會(huì)栖博,這也和 sleep() 方法不同。

join()

join() 方法會(huì)使當(dāng)前線程等待調(diào)用 join() 方法的線程結(jié)束后才能繼續(xù)執(zhí)行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末厢洞,一起剝皮案震驚了整個(gè)濱河市仇让,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌躺翻,老刑警劉巖丧叽,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異公你,居然都是意外死亡踊淳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)陕靠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)迂尝,“玉大人脱茉,你說(shuō)我怎么就攤上這事÷⒖” “怎么了琴许?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)溉躲。 經(jīng)常有香客問(wèn)我榜田,道長(zhǎng),這世上最難降的妖魔是什么签财? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任串慰,我火速辦了婚禮,結(jié)果婚禮上唱蒸,老公的妹妹穿的比我還像新娘邦鲫。我一直安慰自己,他們只是感情好神汹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布庆捺。 她就那樣靜靜地躺著,像睡著了一般屁魏。 火紅的嫁衣襯著肌膚如雪滔以。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天氓拼,我揣著相機(jī)與錄音你画,去河邊找鬼。 笑死桃漾,一個(gè)胖子當(dāng)著我的面吹牛坏匪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播撬统,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼适滓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了恋追?” 一聲冷哼從身側(cè)響起凭迹,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎苦囱,沒(méi)想到半個(gè)月后嗅绸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沿彭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年朽砰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瞧柔,死狀恐怖漆弄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情造锅,我是刑警寧澤撼唾,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站哥蔚,受9級(jí)特大地震影響倒谷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜糙箍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一渤愁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧深夯,春花似錦抖格、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至掌呜,卻和暖如春滓玖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背质蕉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工势篡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人模暗。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓殊霞,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親汰蓉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355