一、遇见AtomicInteger
在看项目代码的时候看到这个类,发现其功能很简单,就是一个整型变量的类型,出于好奇看了其类定义。
该类位于java.util.concurrent.atomic下,在concurrent下可知该类肯定与并发和原子性相关。
二、进一步了解
源码非常简单,结合其他人的博客,基本可以了解到AtomicInteger类是一个提供原子操作的Integer类。
普通的整型类如int和Integer类,在++i/i++等操作并不是线程安全的,在并发环境下容易出现脏数据。
AtomicInteger使用了volatile关键字进行修饰,使得该类可以满足线程安全。
private volatile int value; /**
* Creates a new AtomicInteger with the given initial value.
*
* @param initialValue the initial value
*/
public AtomicInteger(int initialValue) {
value = initialValue;
} /**
* Creates a new AtomicInteger with initial value {@code 0}.
*/
public AtomicInteger() {
}
在源码中也有所体现。