sleep與wait的區別

2021-06-21 13:08:49 字數 351 閱讀 7019

sleep與wait的區別

1.都是執行緒狀態切換的操作

2. sleep一定時間後會自動喚醒,wait則需要手動notify或notifyall

3. sleep不會釋放物件鎖,thread方法;wait會放棄物件鎖,是object方法,執行後會進入等待物件鎖池的佇列中

4.notify並不會釋放鎖,只是通常等待佇列中可以取出乙個wait的執行緒進行鎖競爭,例如:notify後面還有耗時的**(仍然在同步鎖**塊中),則必須要**執行完後才會釋放鎖

參考:執行緒狀態切換圖:

sleep與wait的區別

sleep 就是正在執行的執行緒主動讓出 cpu,cpu 去執行其他執行緒,在 sleep 指定的時間過後,cpu 才會回到這個執行緒上繼續往下執行,如果當前執行緒進入了同步鎖,sleep 方法並不會釋 放鎖,即使當前執行緒使用 sleep 方法讓出了 cpu,但其他被同步鎖擋住了的執行緒也無 法得...

sleep()與wait()的區別

sleep,wait如例子 店 public class 店 消費麵包 public void take public boolean isempety public boolean isfull 生產者 public class 生產者 implements runnable override p...

wait與sleep的區別

執行緒wait 和sleep 的區別 共同點 1.他們都是在多執行緒的環境下,都可以在程式的呼叫處阻塞指定的毫秒數,並返回。2.wait 和sleep 都可以通過interrupt 方法 打斷執行緒的暫停狀態 從而使執行緒立刻丟擲interruptedexception。如果執行緒a希望立即結束執行...