在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()
方法来通知等待的线程。