gpt4 book ai didi

java - 循环中的 AtomicInteger 计算

转载 作者:行者123 更新时间:2023-12-01 06:30:59 24 4
gpt4 key购买 nike

public final int getAndIncrement() {
for (;;) {
int current = get();
int next = current + 1;
if (compareAndSet(current, next))
return current;
}
}

我发现增量方法在循环 block 内工作。为什么我们不能只计算结果而不进行任何循环?它有什么意义?

最佳答案

如果另一个线程出现并在 int current = get()compareAndSet(current, next) 之间更改了 AtomicInteger 的值,那么 compareAndSet 调用将会失败。使用循环可以确保这种可能性永远不会发生。

关于java - 循环中的 AtomicInteger 计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17732232/

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