AtomicInteger 相加
时间: 2023-08-05 17:59:26 浏览: 124
Java中的AtomicInteger是一个原子类,它提供了一种线程安全的方式来对整数进行操作。它可以保证多个线程同时对同一个AtomicInteger对象进行操作时,不会出现数据竞争和不一致的情况。AtomicInteger提供了一些常用的方法,如get、set、getAndSet、incrementAndGet、decrementAndGet等,这些方法都是原子操作,可以保证线程安全。AtomicInteger在多线程编程中非常常用,可以用来实现计数器、标记等功能。
相关问题
AtomicInteger
AtomicInteger是Java中的一个原子整数类。它提供了一种线程安全的方式来操作一个整数变量。在多线程环境下,使用AtomicInteger可以确保对该变量的操作是原子的,即不会被其他线程中断。
在提供的引用中,我们可以看到一些AtomicInteger的常用方法:
1. addAndGet(int delta) - 将指定值与当前值相加,并返回相加后的结果。在引用中,初始值为10,调用addAndGet(2)后,结果为12。
2. getAndAdd(int delta) - 先返回当前值,然后将指定值与当前值相加。在引用中,初始值为10,调用getAndAdd(2)后,返回值为10。
3. incrementAndGet() - 先将当前值加1,然后返回相加后的结果。在引用中,初始值为5,调用incrementAndGet()后,结果为6。
4. get() - 返回当前值。在引用中,调用get()后,返回值为6。
AtomicInteger的使用
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()等,可以根据具体需求选择使用。
阅读全文