Java中的sleep方法和wait方法都是用于線程的控制和同步。
sleep方法是Thread類的靜態方法,用于使線程進入休眠狀態,在指定的時間內暫停執行。線程在休眠期間不會釋放鎖資源。
sleep方法不依賴于對象的鎖,可以在任何地方調用。
使用sleep方法時,需要捕獲InterruptedException異常。
wait方法是Object類的方法,用于使線程進入等待狀態,直到其他線程調用notify或notifyAll方法喚醒它。線程在等待期間會釋放鎖資源。
wait方法必須在同步塊或同步方法中使用,即在調用wait方法前必須先獲得對象的鎖。
調用wait方法后,線程會釋放鎖資源,進入等待隊列,直到其他線程調用notify或notifyAll方法喚醒它。
使用wait方法時,需要捕獲InterruptedException異常。
總結:
sleep方法是線程的靜態方法,使線程在指定時間內進入休眠狀態,不會釋放鎖資源;
wait方法是對象的方法,使線程進入等待狀態,會釋放鎖資源,需要在同步塊或同步方法中使用,直到其他線程調用notify或notifyAll方法喚醒它。