AtomicInteger是java.util.concurrent.atomic包中提供的一个原子操作类,用于在多线程环境下对一个整型变量进行原子操作。
使用AtomicInteger类的步骤如下:
-
创建一个AtomicInteger对象,可以选择传入一个初始值作为参数:AtomicInteger atomicInteger = new AtomicInteger(0);
-
调用AtomicInteger对象的方法对整型变量进行原子操作,常用的方法有:
- get():获取当前整型变量的值。
- set(int newValue):设置整型变量的值为newValue。
- incrementAndGet():先增加整型变量的值,然后返回增加后的值。
- decrementAndGet():先减少整型变量的值,然后返回减少后的值。
- getAndIncrement():先返回整型变量的值,然后增加整型变量的值。
- getAndDecrement():先返回整型变量的值,然后减少整型变量的值。
- compareAndSet(int expect, int update):如果当前整型变量的值等于expect,则将整型变量的值设置为update,返回true;否则返回false。
下面是一个简单的示例代码:
import java.util.concurrent.atomic.AtomicInteger; public class AtomicIntegerExample { public static void main(String[] args) { AtomicInteger atomicInteger = new AtomicInteger(0); System.out.println("初始值:" + atomicInteger.get()); atomicInteger.incrementAndGet(); System.out.println("增加后的值:" + atomicInteger.get()); atomicInteger.compareAndSet(1, 10); System.out.println("比较并设置后的值:" + atomicInteger.get()); } }
输出结果为:
初始值:0 增加后的值:1 比较并设置后的值:10
从示例代码可以看出,AtomicInteger类能够保证多线程环境下对整型变量的操作的原子性,避免了数据竞争和并发问题。