gpt4 book ai didi

java - 等到 boolean 值改变它的状态

转载 作者:IT老高 更新时间:2023-10-28 20:44:33 25 4
gpt4 key购买 nike

我有一个线程等待 boolean 值改变如下:

while(!value)
{
Thread.sleep(1000)
}
// Do some work after change of the value

这不是我喜欢的方式,因为会消耗大量 CPU。

有什么办法可以阻塞线程,直到 boolean 值改变它的状态?

最佳答案

This is not my prefered way to do this, cause of massive CPU consumption.

如果这实际上是您的工作代码,那么就保持这样。每秒检查一次 boolean 值会导致没有可测量的 CPU 负载。什么都没有。

真正的问题是检查值的线程可能看不到由于缓存而在任意长时间内发生的更改。为保证值在线程间始终保持同步,需要在变量定义中放入 volatile 关键字,即

private volatile boolean value;

请注意,将访问放在 synchronized block 中,例如使用其他答案中描述的基于通知的解决方案时,将具有相同的效果。

关于java - 等到 boolean 值改变它的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19025366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com