概述
AtomicInteger,提供原子操作的Integer的类
。
在Java语言中,++i和i++操作不是线程安全的
,在使用的时候,不可避免的会用到synchronized关键字。
AtomicInteger则通过一种线程安全的加减操作接口
创建
//创建一个初始化值为0的
AtomicInteger atomicInteger = new AtomicInteger(0);
获取当前的值
public final int get()
atomicInteger.get()
取当前的值,并设置新的值
public final int getAndSet(int newValue)
atomicInteger.getAndSet(1)
获取当前的值,并自增
public final int getAndIncrement()
atomicInteger.getAndIncrement()
获取当前的值,并自减
public final int getAndDecrement()
atomicInteger.getAndDecrement()
获取当前的值,并加上预期的值
public final int getAndAdd(int delta)
atomicInteger.getAndAdd(8)
全部代码及运行结果
AtomicInteger atomicInteger = new AtomicInteger(0);
int i = atomicInteger.get();
System.out.println(i);//0
int andSet = atomicInteger.getAndSet(1);
System.out.println(andSet);//0
int andIncrement = atomicInteger.getAndIncrement();
System.out.println(andIncrement);//1
int andDecrement = atomicInteger.getAndDecrement();
System.out.println(andDecrement);//2
int andAdd = atomicInteger.getAndAdd(8);
System.out.println(andAdd);//1
System.out.println(atomicInteger.get());//9