voi*_*oid 2 java integer atomic atomicinteger
能否请您帮助我掌握 AtomicInteger 类的一些方法的要点:updateAndGet, accumulateAndGet.
为什么第一个接收IntUnaryOperator作为参数?在这个接口的功能方法中可以应用什么逻辑?我的想法是,获得普通int价值会更容易。(与IntBinaryOperator界面相同)。
提前致谢。
如果您想以原子方式将 an 中存储的值加倍AtomicInteger,那么在编写 Java 8 之前您可以做的最好的事情
while (true) {
int x = ai.get();
if (ai.compareAndSet(x, 2 * x)) {
return 2 * x;
}
}
Run Code Online (Sandbox Code Playgroud)
...但是 Java 8 允许您编写例如
ai.updateAndGet(x -> 2 * x);
Run Code Online (Sandbox Code Playgroud)
...并accumulateAndGet会,比方说,让你乘原子ai通过y与
ai.accumulateAndGet(y, (x, y) -> x * y);
Run Code Online (Sandbox Code Playgroud)
...也可以使用它来实现,updateAndGet但在某些情况下,如果您已经有两个参数的操作,使用起来可能更简单。
| 归档时间: |
|
| 查看次数: |
1059 次 |
| 最近记录: |