yield():讓出CPU的執行權,進入就緒狀態,不會釋放鎖;
sleep():線程休眠,但不會釋放鎖;
notify():對鎖無影響,線程只有在synchronized同步代碼執行完成後,纔會釋放鎖,
所以,notify系列方法一般都是在synchronized同步代碼的最後一行。
wait():會釋放當前線程所持有的鎖,而且當被喚醒後,會重新去競爭鎖,鎖競爭到後纔會執行wait方法後面的代碼。
yield():讓出CPU的執行權,進入就緒狀態,不會釋放鎖;
sleep():線程休眠,但不會釋放鎖;
notify():對鎖無影響,線程只有在synchronized同步代碼執行完成後,纔會釋放鎖,
所以,notify系列方法一般都是在synchronized同步代碼的最後一行。
wait():會釋放當前線程所持有的鎖,而且當被喚醒後,會重新去競爭鎖,鎖競爭到後纔會執行wait方法後面的代碼。