課程
/后端開(kāi)發(fā)
/Java
/深入淺出Java多線程
while (energyBoxes[from]<amount) { lockObject.wait(); }
不在同步中用的確是if(energyBoxes[from]<amount) {return;}
2016-10-17
源自:深入淺出Java多線程 4-4
正在回答
抱歉,好久沒(méi)來(lái)慕課了,上次沒(méi)回答清楚。簡(jiǎn)單說(shuō)就是,if語(yǔ)句是不滿足條件就退出,while是不滿足條件就等著滿足條件。if條件滿足之后之后return,會(huì)退出該方法。while之后是wait,沒(méi)有return,所以并沒(méi)有結(jié)束,只是當(dāng)前線程進(jìn)入了等待序列,當(dāng)線程下一次獲取cpu時(shí)間時(shí)還需要判斷while里面的條件是否滿足,才能執(zhí)行下面的語(yǔ)句,所以需要while來(lái)反復(fù)判斷。
林二小
car 提問(wèn)者
霸氣小肆毛
因?yàn)閣hile是循環(huán)的啊,if只會(huì)執(zhí)行一次。
舉報(bào)
帶你一起深入淺出多線程,掌握基礎(chǔ),展望進(jìn)階路線
2 回答為什么要用while,不可以用if嗎?
2 回答run()方法為什么用while循環(huán)而不用if
4 回答為什么眼使用 Volatile 同步機(jī)制
1 回答為什么用為什么用if((System.currenttime - time)<1000)而不用sleep(1000)?
2 回答是否可以將synchronized塊中的while替換為if?
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-10-30
抱歉,好久沒(méi)來(lái)慕課了,上次沒(méi)回答清楚。簡(jiǎn)單說(shuō)就是,if語(yǔ)句是不滿足條件就退出,while是不滿足條件就等著滿足條件。if條件滿足之后之后return,會(huì)退出該方法。while之后是wait,沒(méi)有return,所以并沒(méi)有結(jié)束,只是當(dāng)前線程進(jìn)入了等待序列,當(dāng)線程下一次獲取cpu時(shí)間時(shí)還需要判斷while里面的條件是否滿足,才能執(zhí)行下面的語(yǔ)句,所以需要while來(lái)反復(fù)判斷。
2016-10-17
因?yàn)閣hile是循環(huán)的啊,if只會(huì)執(zhí)行一次。