在Java中,可以使用wait()notify()方法来实现等待一个变量值变化的功能。

首先,需要在一个synchronized块中使用wait()方法来等待变量值的变化。wait()方法会使当前线程进入等待状态,并释放锁。例如:

synchronized (lock) {
    while (variable != expectedValue) {
        try {
            lock.wait();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

然后,在其他线程中,当变量值发生变化时,可以使用notify()notifyAll()方法来通知等待的线程。notify()方法会随机选择一个等待的线程唤醒,而notifyAll()方法会唤醒所有等待的线程。例如:

synchronized (lock) {
    variable = newValue;
    lock.notifyAll();
}

这样,当变量值发生变化时,等待的线程会被唤醒并继续执行。需要注意的是,在使用wait()和notify()方法时,必须在同步块中使用,并且使用相同的锁对象。

另外,也可以使用Java的Lock和Condition来实现类似的功能。具体的实现方式与使用synchronized和wait()、notify()类似,只是方法的名称和使用方式会有些不同。

Java 等待变量值变化:使用 wait() 和 notify() 方法

原文地址: https://www.cveoy.top/t/topic/pWvo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录