線程wait()和sleep()的區別都是使線程暫時停止執行的方法,但它們有很大的不同,sleep是線程類Thread 的方法,它是使當前線程暫時睡眠,可以放在任何位置。而waitObject類的方法,它是使當前線程暫時放棄對象的使用權進行等待,必須放在同步方法或同步塊里。Sleep使用的時候,線程并不會放棄對象的使用權,即不會釋放對象鎖,所以在同步方法或同步塊中使用sleep,一個線程訪問時,其他的線程也是無法訪問的。而wait是會釋放對象鎖的,就是當前線程放棄對象的使用權,讓其他的線程可以訪問。線程執行wait方法時,需要另一個線程調用notify進行喚醒。而sleep只是暫時休眠一定時間,時間到了之后,自動恢復運行,不需另外的線程喚醒。