wait()
方法是 Java 中的一个同步机制,它用于让当前线程等待,直到其他线程调用同一个对象的 notify()
或 notifyAll()
方法。wait()
方法必须在同步代码块或同步方法中使用,否则会抛出 IllegalMonitorStateException
异常。
当一个线程调用某个对象的 wait()
方法时,它会释放该对象的锁,进入等待状态。其他线程在获得该对象的锁并调用 notify()
或 notifyAll()
方法后,等待状态的线程会被唤醒,重新尝试获取对象的锁。如果成功获取到锁,等待状态的线程会继续执行。
因此,wait()
方法确实能保证同步,但它主要用于线程间的协作,而不是用于控制对共享资源的访问。在控制对共享资源的访问时,通常使用 synchronized
关键字或其他并发工具类(如 ReentrantLock
)。