在Java中,wait()
方法用于让当前线程等待,直到满足指定的条件。为了使用wait()
方法,你需要在一个对象上调用它,并且通常与synchronized
关键字和notify()
/notifyAll()
方法一起使用。
以下是一个简单的示例:
class SharedResource {
private boolean condition = false;
public synchronized void waitForCondition() throws InterruptedException {
while (!condition) {
wait(); // 当前线程等待,直到条件满足
}
// 条件满足,继续执行
}
public synchronized void setCondition(boolean value) {
this.condition = value;
notify(); // 通知等待的线程条件已满足
}
}
在这个示例中,waitForCondition()
方法会一直等待,直到condition
变量变为true
。当setCondition()
方法被调用并设置condition
为true
时,它会调用notify()
方法来唤醒等待的线程。
请注意,wait()
方法必须在synchronized
块或方法中调用,因为它需要获取对象的监视器锁。此外,调用wait()
方法时,线程会释放对象监视器锁,并在被唤醒后重新获取它。
总之,Java中的wait()
方法确实可以让线程等待,直到满足指定的条件。但是,为了正确使用它,你需要确保在同步块或方法中调用它,并使用notify()
/notifyAll()
方法来通知等待的线程。