java.util.concurrent.atomic.AtomicBoolean
是否没有可以原子取反/取反值的方法?我可以换一种方式吗?我想念什么吗?
最佳答案
有点旧...但是并没有真正感到答案很棒。
必须完全不同意这在硬件中并不常见或仅有用。您可能希望多个线程以相同的可能性打开单个变量...我使用AtomicLong制作了一个假 boolean 值。这是从JMS MessageListener采纳的,我需要一半时间响应特定的消息,而另一半则响应另一种类型。
public class Mock {
private static AtomicLong count = new AtomicLong(0);
public boolean respond() {
long currentCount = count.getAndIncrement();
if (currentCount % 2 == 0) {
return true;
} else {
return false;
}
}
}