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;
        }
    }
}

10-07 19:15
查看更多