gpt4 book ai didi

java - 一些 AtomicInteger 方法的实际例子

转载 作者:行者123 更新时间:2023-11-29 03:02:28 29 4
gpt4 key购买 nike

能否请您帮助我掌握 AtomicInteger 类的一些方法的要点:updateAndGetaccumulateAndGet

为什么第一个接收 IntUnaryOperator 作为参数?在此接口(interface)的功能方法中可以潜在地应用什么逻辑?我的想法是,只接收普通的 int 值会更容易。 (与 IntBinaryOperator 接口(interface)相同)。

提前致谢。

最佳答案

如果您想以原子方式将存储在 AtomicInteger 中的值加倍,那么在编写 Java 8 之前您可以做的最好的事情

while (true) {
int x = ai.get();
if (ai.compareAndSet(x, 2 * x)) {
return 2 * x;
}
}

...但是 Java 8 允许您编写例如

ai.updateAndGet(x -> 2 * x);

...和 ​​accumulateAndGet 会让你用 ai 原子地乘以 y

ai.accumulateAndGet(y, (x, y) -> x * y);

...也可以使用 updateAndGet 实现,但在某些情况下您已经有两个参数的操作时使用起来可能更简单。

关于java - 一些 AtomicInteger 方法的实际例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33996362/

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