在java.util.concurrent.atomic
包里,多了一批原子处理类。AtomicBoolean
、AtomicInteger
、AtomicLong
、AtomicReference
。主要用于在高并发环境下的高效程序处理,来帮助我们简化同步处理.
AtomicInteger
一个提供原子操作的Integer
的类。在Java语言中,++i
和i++
操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized
关键字。而AtomicInteger
则通过一种线程安全的加减操作接口。
我们先来看看AtomicInteger
提供了什么接口:
1
2
3
4
5
|
public final int get() //获取当前的值 public final int getAndSet( int newValue) //获取当前的值,并设置新的值 public final int getAndIncrement() //获取当前的值,并自增 public final int getAndDecrement() //获取当前的值,并自减 public final int getAndAdd( int delta) //获取当前的值,并加上预期的值 |
下面通过两个简单的例子来看一下 AtomicInteger
的优势。
普通线程同步: