import java.util.concurrent.atomic.AtomicInteger;
public class AtomicIntegerExample {
public static void main(String[] args) {
// 创建一个初始值为0的AtomicInteger对象
AtomicInteger atomicInt = new AtomicInteger(0);
// 获取当前值
System.out.println("Initial value: " + atomicInt.get()); // 输出: Initial value: 0
// 设置新值为10
atomicInt.set(10);
System.out.println("After set: " + atomicInt.get()); // 输出: After set: 10
// 获取并增加当前值
int oldValue = atomicInt.getAndIncrement();
System.out.println("Old value after getAndIncrement: " + oldValue); // 输出: Old value after getAndIncrement: 10
System.out.println("New value after getAndIncrement: " + atomicInt.get()); // 输出: New value after getAndIncrement: 11
// 增加并获取当前值
int newValue = atomicInt.incrementAndGet();
System.out.println("Value after incrementAndGet: " + newValue); // 输出: Value after incrementAndGet: 12
// 比较并交换值,如果当前值等于预期值,则设置为新值
boolean isSwapped = atomicInt.compareAndSet(12, 20);
System.out.println("Is swapped: " + isSwapped); // 输出: Is swapped: true
System.out.println("Value after compareAndSet: " + atomicInt.get()); // 输出: Value after compareAndSet: 20
// 如果当前值不等于预期值,则比较并交换失败
boolean isNotSwapped = atomicInt.compareAndSet(15, 25);
System.out.println("Is not swapped: " + isNotSwapped); // 输出: Is not swapped: false
System.out.println("Value remains: " + atomicInt.get()); // 输出: Value remains: 20
}
}
AtomicInteger 是 Java 中的一个线程安全的整数类,它提供了原子操作(如递增、递减、比较并交换等),确保在多线程环境下对整数的操作是安全的。get():获取当前值。set(int newValue):设置新的值。getAndIncrement():先获取当前值,然后递增。incrementAndGet():先递增,然后获取更新后的值。compareAndSet(int expect, int update):如果当前值等于预期值,则设置为新值,并返回 true;否则返回 false。Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站