Java 等待两个变量值变化 - 使用 wait() 和 notify() 方法
在Java中,可以使用wait()和notify()方法来实现等待两个变量值变化的功能。\n\n首先,需要使用一个共享对象作为锁,可以是一个Object对象。然后,在需要等待两个变量值变化的地方,使用synchronized关键字来获取锁,并使用wait()方法来等待。\n\n示例代码如下:\n\njava\nObject lock = new Object();\nboolean var1Changed = false;\nboolean var2Changed = false;\n\n// 线程1\nnew Thread(() -> {\n // 获取锁\n synchronized (lock) {\n // 修改变量1\n // ...\n var1Changed = true;\n // 通知其他线程变量1已经改变\n lock.notifyAll();\n }\n}).start();\n\n// 线程2\nnew Thread(() -> {\n // 获取锁\n synchronized (lock) {\n // 修改变量2\n // ...\n var2Changed = true;\n // 通知其他线程变量2已经改变\n lock.notifyAll();\n }\n}).start();\n\n// 等待两个变量值变化\nsynchronized (lock) {\n while (!var1Changed || !var2Changed) {\n try {\n lock.wait();\n } catch (InterruptedException e) {\n e.printStackTrace();\n }\n }\n}\n\n\n在上述代码中,线程1和线程2分别修改变量1和变量2,并使用notifyAll()方法通知其他线程。主线程使用wait()方法等待两个变量值的变化,直到变量1和变量2都已经改变才会继续执行下去。
原文地址: https://www.cveoy.top/t/topic/pWvw 著作权归作者所有。请勿转载和采集!