第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

lockObj.notifyAll(); 說是喚醒所有在lockObj對象上等待的線程,energyBoxes[from] < amount那么肯定會出現(xiàn)有些線程這個條件不滿足的啊,咋能喚醒全部線程呢?

lockObj.notifyAll(); 說是喚醒所有在lockObj對象上等待的線程,energyBoxes[from] < amount那么肯定會出現(xiàn)有些線程這個條件不滿足的啊,咋能喚醒全部線程呢?

正在回答

8 回答

喚醒線程之后 線程就會重新執(zhí)行一遍run語句塊中的方法 而運行的代碼中的“?while (energyBoxes[from] < amount)”代碼就可以起到判斷的作用 若不滿足條件則繼續(xù)等待

0 回復(fù) 有任何疑惑可以回復(fù)我~

wait()在條件不滿足時調(diào)用,然后會釋放掉鎖,進入wait set等待,讓其他的線程去競爭cpu資源,當其他的線程操作引起條件的變化時,則會notifyAll()喚醒所有在wait set中等待的線程,重新判斷條件是否滿足,滿足則獲取資源,不滿足繼續(xù)進入wait set等待

2 回復(fù) 有任何疑惑可以回復(fù)我~

沒錯,所有waitSet中的線程都會被喚醒,并且同一時刻只有一條線程競爭到CPU資源,

然后開始執(zhí)行transfer方法:如果還是不滿足if條件,繼續(xù)回去等待;滿足了就執(zhí)行transfer操作。

然后下一個線程剛被喚醒的線程繼續(xù)進入CPU。

1 回復(fù) 有任何疑惑可以回復(fù)我~

不滿足這個條件就不會wait(),所以就不需要喚醒啊

0 回復(fù) 有任何疑惑可以回復(fù)我~

喚醒所有線程,然后重新進行一次判斷,不滿足的再次進入阻塞

2 回復(fù) 有任何疑惑可以回復(fù)我~

我猜是,energyBoxes[from]<amount的線程在失去鎖進入wait set后,線程本身沒有停下來只是不能操作被鎖的內(nèi)存區(qū)域,但是線程能獲得新的amount(等于刷新自己的amount),也不知道對不對


0 回復(fù) 有任何疑惑可以回復(fù)我~

就像生產(chǎn)車間的庫存商品一樣,存貨不足時買家來進貨就只能進入等待,剛生產(chǎn)一件又有另外一個買家來進貨,又只能進入等待,直到收到通知有貨了買家才來買。這里的notifyAll就是通知了所有人

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

lockObj.notifyAll(); 說是喚醒所有在lockObj對象上等待的線程,energyBoxes[from] < amount那么肯定會出現(xiàn)有些線程這個條件不滿足的啊,咋能喚醒全部線程呢?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號