Java

java wait条件满足吗

小樊
81
2024-11-17 00:51:55
栏目: 编程语言

在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()方法被调用并设置conditiontrue时,它会调用notify()方法来唤醒等待的线程。

请注意,wait()方法必须在synchronized块或方法中调用,因为它需要获取对象的监视器锁。此外,调用wait()方法时,线程会释放对象监视器锁,并在被唤醒后重新获取它。

总之,Java中的wait()方法确实可以让线程等待,直到满足指定的条件。但是,为了正确使用它,你需要确保在同步块或方法中调用它,并使用notify()/notifyAll()方法来通知等待的线程。

0
看了该问题的人还看了