gpt4 book ai didi

java - AtomicBoolean.set(flag) 和 AtomicBoolean.compareAndSet(!flag, flag) 有什么区别?

转载 作者:搜寻专家 更新时间:2023-11-01 01:10:46 27 4
gpt4 key购买 nike

我想知道调用之间是否有任何区别(或可能的副作用):

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/

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