一、遇见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() { }
在源码中也有所体现。