Java AtomicInteger

AtomicInteger 类通过提供对值执行原子操作的方法来保护底层的 int 值。

自 Java 1.5 以来,AtomicInteger类是java.util.concurrent.atomic包的一部分。

欢迎来到之路教程(on itroad-com)

使用AtomicInteger 作为原子计数器示例

在多个线程中同时使用的原子计数器。

为了将其用作计数器,AtomicInteger类提供了一些以原子方式执行加法和减法操作的方法。

  • addAndGet()- 以原子方式将给定值与当前值相加,并在相加后返回新值。
  • getAndAdd()- 以原子方式将给定值添加到当前值并返回旧值。
  • incrementAndGet()- 以原子方式将当前值递增 1 并在递增后返回新值。相当于 ++i 操作。
  • getAndIncrement()- 以原子方式递增当前值并返回旧值。它相当于 i++ 操作。
  • decrementAndGet()- 以原子方式将当前值递减 1 并在递减后返回新值。它等价于 i- - 操作。
  • getAndDecrement()- 原子地递减当前值并返回旧值。相当于--i操作。
public class Main 
{
	public static void main(String[] args) 
	{
		AtomicInteger atomicInteger = new AtomicInteger(100);

		System.out.println(atomicInteger.addAndGet(2));			//102
		System.out.println(atomicInteger);						//102

		System.out.println(atomicInteger.getAndAdd(2));			//102
		System.out.println(atomicInteger);						//104

		System.out.println(atomicInteger.incrementAndGet());	//105	
		System.out.println(atomicInteger);						//105	

		System.out.println(atomicInteger.getAndIncrement());	//105
		System.out.println(atomicInteger);						//106

		System.out.println(atomicInteger.decrementAndGet());	//105
		System.out.println(atomicInteger);						//105

		System.out.println(atomicInteger.getAndDecrement());	//105
		System.out.println(atomicInteger);						//104
	}
}

Java如何创建、获取和设置 AtomicInteger 的值

通过调用构造函数可以直接创建 AtomicInteger
AtomicInteger提供了两种方法来获取和设置它的实例的值。

// 初始值为 0
AtomicInteger atomicInteger = new AtomicInteger();	
// 初始值为 100
AtomicInteger atomicInteger = new AtomicInteger(100);

int currentValue = atomicInteger.get();			// 获取AtomicInteger值

atomicInteger.set(1234);						// 设置AtomicInteger值
日期:2020-09-17 00:09:32 来源:oir作者:oir