AtomicInteger的使用
时间: 2023-11-15 21:45:11 浏览: 118
AtomicInteger是Java中的一个原子类,用于在并发编程中实现原子操作。它提供了一种线程安全的方式来对整数进行自增、自减、加法、减法等操作。
使用AtomicInteger可以避免多个线程同时修改同一个整数变量时可能引发的竞态条件和线程安全问题。它内部使用了CAS(Compare and Swap)操作来保证原子性,保证了操作的原子性和可见性。
下面是一些AtomicInteger的常见使用方式:
1. 自增和自减操作:
```java
AtomicInteger atomicInteger = new AtomicInteger(0);
atomicInteger.incrementAndGet(); // 自增1,并返回自增后的值
atomicInteger.decrementAndGet(); // 自减1,并返回自减后的值
```
2. 加法和减法操作:
```java
AtomicInteger atomicInteger = new AtomicInteger(0);
atomicInteger.addAndGet(5); // 加上指定的值,并返回相加后的结果
atomicInteger.subtractAndGet(3); // 减去指定的值,并返回相减后的结果
```
3. 获取和设置值:
```java
AtomicInteger atomicInteger = new AtomicInteger(0);
int value = atomicInteger.get(); // 获取当前值
atomicInteger.set(10); // 设置新的值
```
4. CAS操作:
```java
AtomicInteger atomicInteger = new AtomicInteger(0);
int expectedValue = 0;
int newValue = 10;
boolean swapped = atomicInteger.compareAndSet(expectedValue, newValue); // 如果当前值等于expectedValue,则将其设置为newValue
```
AtomicInteger还提供了其他一些方法,如getAndIncrement()、getAndDecrement()、getAndAdd()等,可以根据具体需求选择使用。
阅读全文