課程
/后端開發(fā)
/Java
/深入淺出Java多線程
Sleep()、suspend()和wait()之間有什么區(qū)別?
2016-06-21
源自:深入淺出Java多線程 4-1
正在回答
Thread.sleep()使當(dāng)前線程在指定的時(shí)間處于“非運(yùn)行”(Not Runnable)狀態(tài)。線程一直持有對(duì)象的監(jiān)視器。比如一個(gè)線程當(dāng)前在一個(gè)同步塊或同步方法中,其它線程不能進(jìn)入該塊或方法中。如果另一線程調(diào)用了interrupt()方法,它將喚醒那個(gè)“睡眠的”線程。
注意:sleep()是一個(gè)靜態(tài)方法。這意味著只對(duì)當(dāng)前線程有效,一個(gè)常見的錯(cuò)誤是調(diào)用t.sleep(),(這里的t是一個(gè)不同于當(dāng)前線程的線程)。即便是執(zhí)行t.sleep(),也是當(dāng)前線程進(jìn)入睡眠,而不是t線程。t.suspend()是過時(shí)的方法,使用suspend()導(dǎo)致線程進(jìn)入停滯狀態(tài),該線程會(huì)一直持有對(duì)象的監(jiān)視器,suspend()容易引起死鎖問題。
object.wait()使當(dāng)前線程出于“不可運(yùn)行”狀態(tài),和sleep()不同的是wait是object的方法而不是thread。
這回答都是一些文字來的,沒有代碼解釋哦,哈哈!!
舉報(bào)
帶你一起深入淺出多線程,掌握基礎(chǔ),展望進(jìn)階路線
1 回答?sleep()和wait()區(qū)別的區(qū)別是什么
2 回答既然wait()方法和return方法都會(huì)釋放掉鎖資源 那有什么區(qū)別那
1 回答wait和notifyAll
2 回答線程在wait()之后...
1 回答thread與runnable有什么區(qū)別
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-06-21
Thread.sleep()使當(dāng)前線程在指定的時(shí)間處于“非運(yùn)行”(Not Runnable)狀態(tài)。線程一直持有對(duì)象的監(jiān)視器。比如一個(gè)線程當(dāng)前在一個(gè)同步塊或同步方法中,其它線程不能進(jìn)入該塊或方法中。如果另一線程調(diào)用了interrupt()方法,它將喚醒那個(gè)“睡眠的”線程。
注意:sleep()是一個(gè)靜態(tài)方法。這意味著只對(duì)當(dāng)前線程有效,一個(gè)常見的錯(cuò)誤是調(diào)用t.sleep(),(這里的t是一個(gè)不同于當(dāng)前線程的線程)。即便是執(zhí)行t.sleep(),也是當(dāng)前線程進(jìn)入睡眠,而不是t線程。t.suspend()是過時(shí)的方法,使用suspend()導(dǎo)致線程進(jìn)入停滯狀態(tài),該線程會(huì)一直持有對(duì)象的監(jiān)視器,suspend()容易引起死鎖問題。
object.wait()使當(dāng)前線程出于“不可運(yùn)行”狀態(tài),和sleep()不同的是wait是object的方法而不是thread。
這回答都是一些文字來的,沒有代碼解釋哦,哈哈!!