調用方式不同:sleep方法是Thread類的靜態方法,可以直接調用;wait方法是Object類的方法,需要在同步代碼塊中使用。
鎖的釋放不同:sleep方法不會釋放鎖,線程仍然持有鎖;wait方法會釋放鎖,使得其他線程可以獲取到鎖。
喚醒方式不同:sleep方法只能通過時間到達自動喚醒;wait方法可以通過notify和notifyAll方法來喚醒。
使用場景不同:sleep方法主要用于線程暫停一段時間,不需要其他線程的協作;wait方法主要用于線程等待某個條件滿足,需要其他線程的協作。
異常處理不同:sleep方法會拋出InterruptedException異常,需要進行異常處理;wait方法不會拋出異常。