java - while 循环阻塞其他线程

标签 java multithreading

我正在等待 boolean 值随着 while 循环而改变,但 while 循环永远不会结束?我可能在这方面有些愚蠢

有效的代码。但 while 循环永远不会结束,并且 boolean 值更改时我的代码不会被执行:

while(!myCoolBoolean);
//my code when the boolean has changed to true

这有点奇怪,因为当我这样做时它会起作用:

while(!myCoolBoolean) {
    System.out.print();
}
//my code again

有什么帮助吗? 编辑: while 循环实际上在一个线程中,并且 myCoolBoolean 正在另一个线程中更改

最佳答案

尝试声明:

volatile boolean 值 myCoolBoolean;

关于java - while 循环阻塞其他线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56892227/

相关文章:

java - 如何通过 start-stop-daemon 优雅地关闭 Spring Boot 应用程序

c++ - thread::hardware_concurrency() 检查返回零值

java - 在 ConcurrentHashMap 中以原子方式 searchKeys() 和 put()

java - WEKA:从classifyInstance获取类,为什么这是错误的

c++ 多线程 - 信号处理器线程

python - 多线程环境下Python<->Cython<->C之间的通信

multithreading - 线程同步队列的最佳方法

java - 仅打印(不是整个框架)java swings中的标签

java - 使用 LayoutManager 面板不显示在 JFrame 中

java - 前几个微软翻译器 API 请求成功,然后调用失败并抛出 NoArgument 异常且 appid 无效