AtomicInteger越界的处理方式
程序员文章站
2022-05-12 11:33:01
...
使用updateAndGet方法进行更新值,传入的是一个IntUnaryOperator
接口,使用lambda表达式完成功能即可。
下面是一个简单的例子
public class ThreadLocalDemo {
public static void main(String[] args) {
AtomicInteger atomicInteger = new AtomicInteger(Integer.MAX_VALUE);
atomicInteger.updateAndGet((x) -> {
if (x >= Integer.MAX_VALUE) {
System.out.println("超过最大值" + x);
return 0;
} else if (x < Integer.MIN_VALUE) {
System.out.println("超过最小值");
return 0;
} else {
return x + 1;
}
});
System.out.println(atomicInteger.get());
}
}
推荐阅读