AtomicInteger

AtomicBoolean、AtomicInteger、AtomicLong这三个类提供的方法几乎一模一样,所以本篇以AtomicInteger为例进行讲解。
AtomicInteger常用的方法如下:
get()
  获取当前值

set(int newValue)
  对当前的原子操作设置新值

getAndSet(int newValue)
   设置新值并返回旧值 
lazySet(int newValue)

最终会设置成newValue,使用lazySet设置值后,可能导致其他线程在之后的一小段时间内还是可以读到旧值的。关于该方法的更多信息,可参考这篇文章

compareAndSet(int expect, int update)
   expect表示给定的值,update表示预设置的值,该方法的意思是,用给定的值与AtomicInteger当前的值比较,如果相等,则将当前值更新为update的值。
weakCompareAndSet(int expect, int update)
   这个方法和compareAndSet(int expect, int update)方法的内部是一样的,大致意思是: 如果当前值 == 预期值,则以原子方式将该设置为给定的更新值,具体原因还没太明白,可参考这篇博客
getAndIncrement() 
   对当前值+1,返回的是旧值,类似于i++,先赋值,后+1;
getAndDecrement()
    对当前值-1,返回的是旧值,类似于i--,先赋值,后-1;
getAndAdd(int delta)
    将当前的值+delta的值,并返回旧值。
incrementAndGet()
    对当前值+1,返回的是+1后的值,类似于++i;
decrementAndGet()
    对当前值-1,返回的是-1后的值,类似于--i;
addAndGet(int delta)
    对当前值+delat,并返回相加之后的结果。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值