gpt4 book ai didi

java - AtomicInteger.compareAndSet 返回原始值,而不是 boolean 值

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

Java 的 AtomicInteger 提供 public final boolean compareAndSet(int expect, int update) .如果返回false,我想知道比较失败时的实际值是多少。这在 Java 中可行吗?

在 .Net 中,有 public static int CompareExchange(ref int location1, int value, int comparand) ,它始终返回原始值。

最佳答案

public int getAndCompareAndSet(AtomicInteger ai, int expected, int update) {
while (true) {
int old = ai.get();
if (old != expected) {
return old;
} else if (ai.compareAndSet(old, update)) {
return old;
}
}
}

(这种循环是 AtomicInteger 上的大多数操作的实现方式:get 循环,做一些逻辑,尝试比较和设置。)

关于java - AtomicInteger.compareAndSet 返回原始值,而不是 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33684291/

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