1.sleep()使線程休眠一段時間,一段時間結束后,線程進入可執行狀態,但并不是立即執行,只是在被排程器調用的時候才執行。在休眠期間,并不釋放所持有的“鎖”;
2.wait()使線程休眠一段時間,若設置參數,時間到時,線程就自動進入可執行狀態。若沒有,則需要notify()方法去調用。注意:wait()方法和notify()方法都時針對this對象的,調用wait()方法后,會釋放加在對象上的“鎖”。
3.yield()使線程放棄執行的權利,進入可執行狀態,也就意味著線程在yield()方法后,有可能又執行。使用yield()方法,線程并不釋放自己鎖持有的“鎖”。