亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

用notifyAll()的話,不是會造成數據出錯么?

5482850d0001d00905000213.jpg


假設A、B線程的from都一樣,energyBoxes[from]<amount導致A、B線程都wait()了。當滿足energyBoxes[from] >=?amount后某線程調用了notifyAll(),A、B線程都會繼續運行,都對energyBoxes[from]進行操作,這樣不是會導致數據出錯么?

正在回答

2 回答

喚醒后還是要競爭鎖的,所以訪問時還是互斥的。

0 回復 有任何疑惑可以回復我~

是我理解錯了,notifyAll()后還是會逐個運行,不會一起向下運行造成數據出錯。

個人估計notifyAll()在遍歷wait set中的線程進行逐個喚醒時,應該還會用synchronized(this)互斥,不知是不是?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

用notifyAll()的話,不是會造成數據出錯么?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號