欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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());

    }
}