我想知道调用之间是否有任何区别(或可能的副作用):
AtomicBoolean.set(true)
和
AtomicBoolean.compareAndset(false, true)
AtomicBoolean#set
的 JavaDoc 指出:
Unconditionally sets to the given value.
虽然 AtomicBoolean#compareAndSet
声明:
Atomically sets the value to the given updated value if the current value == the expected value.
在这两种情况下,该值都将设置为 true。那有什么区别呢?
最佳答案
compareAndset(false, true)
将返回 false
如果值已经是 true
。
它实际上等同于 !getAndSet(true)
。
关于java - AtomicBoolean.set(flag) 和 AtomicBoolean.compareAndSet(!flag, flag) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13363752/