共計 695 個字符,預計需要花費 2 分鐘才能閱讀完成。
在 Java 中,wait() 方法是 Object 類的一個方法,用于使當前線程進入等待狀態,直到其他線程調用 notify() 或 notifyAll() 方法喚醒它。wait() 方法通常與 synchronized 關鍵字一起使用。
wait() 方法有兩種重載形式:
- wait():當前線程進入等待狀態,直到其他線程調用 notify() 或 notifyAll() 方法喚醒它。wait() 方法必須在 synchronized 塊中進行調用。
示例代碼:
synchronized(obj){
try{obj.wait();
}catch(InterruptedException e){e.printStackTrace();
}
}
- wait(long timeout):當前線程進入等待狀態,并在等待指定的時間后自動喚醒。如果在指定時間內沒有其他線程調用 notify() 或 notifyAll() 方法,當前線程會自動喚醒。
示例代碼:
synchronized(obj){
try{obj.wait(1000); // 等待 1 秒鐘
}catch(InterruptedException e){e.printStackTrace();
}
}
注意事項:
- wait() 方法必須在 synchronized 塊中進行調用,否則會拋出 IllegalMonitorStateException 異常。
- wait() 方法會釋放當前對象的鎖,允許其他線程進入 synchronized 塊。
- 可以在循環中使用 wait() 方法,以防止虛假喚醒(spurious wakeup)。
以上是 wait() 方法的基本使用方法,具體如何使用要根據實際情況來決定。
丸趣 TV 網 – 提供最優質的資源集合!
正文完