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

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

關于wait()和notify()用法

  1. 當使用了wait()方法后,線程停止等待,那wait后面的語句還會被執行嗎?如果沒有被執行,那notify();也沒被執行,那怎么通知其他線程呢?

  2. 為什么不能把notify()放進while循環里面?放在外面不就是代表條件不滿足不執行wait(),也要執行notify()?

正在回答

3 回答

我得到最后的答案是因為每次都執行一次notify;所以即使他wait()了釋放了鎖,由于他上一次執行了 notify()了,所以就已經叫醒了另外的線程,注意這個notify和wait()不是在同一次過程中的。

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

你想的是一條線程,而現在是多條線程,也就是說很多線程都依次執行這段代碼

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

你這邏輯。。。。。 ?我理解的是這樣的 ?當前線程調用的wait()線程就處于阻塞狀態,后面的語句當然不會執行,并且,線程調用wait()之后是會釋放掉鎖資源,然后自己才進入小黑屋等待的,所以并不影響后面線程訪問關鍵數據;

while 的作用是將滿足while條件的線程關進小黑屋啊。。。所以 ? ?只有在不滿足while的情況下,線程得以成功讀寫完關鍵數據,然后才會調用notidy()喚醒小黑屋里的其他等待的線程

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

舉報

0/150
提交
取消
深入淺出Java多線程
  • 參與學習       186072    人
  • 解答問題       502    個

帶你一起深入淺出多線程,掌握基礎,展望進階路線

進入課程

關于wait()和notify()用法

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

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

幫助反饋 APP下載

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

公眾號

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