登山 Day6 - AtomicInteger的基本用法

常用方法

在高并发情况下,一般会用synchronized等关键字来保证线程安全,但针对 i++ 和 i-- ,我们可以用AtomicInteger来替代

public static void main(String[] args) {

        AtomicInteger int1=new AtomicInteger();
        System.out.println("AtomicInteger的默认值为:"+int1);

        //对数据赋值
        int1.set(123);
        //获取数据值
        System.out.println("获取数据的值为:  "+int1.get());

        //先相加,再获取值
        System.out.println("先与12相加,再获取值:  "+int1.addAndGet(12));
        //先获取值,再相加
        System.out.println("先获取值,再与12相加:  "+int1.getAndAdd(12));
        //先获取值,再赋新值
        System.out.println("先获取值,再赋新值100:  "+int1.getAndSet(100));
        //自减1,再获取值
        System.out.println("自减1,再获取值:  "+int1.decrementAndGet());
        //自增1,再获取值
        System.out.println("自增1,再获取值:  "+int1.incrementAndGet());
        //先获取值,再自减1
        System.out.println("先获取值,再自减1:  "+int1.getAndDecrement());
        //先获取值,再自增1
        System.out.println("先获取值,再自增1:  "+int1.getAndIncrement());

    }

 boolean compareAndSet(int expect,int update)

  • 如果atomicInteger变量的值和expect相等,则返回true,并用update重新赋值
  • 如果atomicInteger变量的值不等于expect,则返回false,并用update重新赋值

而且由于AtomicInteger由硬件提供原子操作指令实现,在非激烈竞争的情况下,开销更小,速度更快

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值