sleep()與wait()的區別

2021-09-25 23:46:18 字數 552 閱讀 6209

sleep,wait如例子:

店:

public class 店 

// 消費麵包

public void take()

public boolean isempety()

public boolean isfull() }

生產者:

public class 生產者 implements runnable

@override

public void run()

catch(exception e)

synchronized(dian)catch(exception e)

}//生產

dian.product();

//通知(喚醒)消費者來消費

dian.notifyall();

}} }

}

消費者同理可大家可以試著寫一下,然後啟用兩個執行緒(生產者和消費者)即可看出效果。

當然,我們最好只喚醒消費者;因為notifyall把所有的執行緒全部喚醒了。

sleep與wait的區別

sleep與wait的區別 1.都是執行緒狀態切換的操作 2.sleep一定時間後會自動喚醒,wait則需要手動notify或notifyall 3.sleep不會釋放物件鎖,thread方法 wait會放棄物件鎖,是object方法,執行後會進入等待物件鎖池的佇列中 4.notify並不會釋放鎖,...

sleep與wait的區別

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

wait與sleep的區別

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