wait()
方法是 Java 中的一個同步機制,它用于讓當前線程等待,直到其他線程調用同一個對象的 notify()
或 notifyAll()
方法。wait()
方法必須在同步代碼塊或同步方法中使用,否則會拋出 IllegalMonitorStateException
異常。
當一個線程調用某個對象的 wait()
方法時,它會釋放該對象的鎖,進入等待狀態。其他線程在獲得該對象的鎖并調用 notify()
或 notifyAll()
方法后,等待狀態的線程會被喚醒,重新嘗試獲取對象的鎖。如果成功獲取到鎖,等待狀態的線程會繼續執行。
因此,wait()
方法確實能保證同步,但它主要用于線程間的協作,而不是用于控制對共享資源的訪問。在控制對共享資源的訪問時,通常使用 synchronized
關鍵字或其他并發工具類(如 ReentrantLock
)。