java线程安全的整型类AtomicInteger

Posted puyangsky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java线程安全的整型类AtomicInteger相关的知识,希望对你有一定的参考价值。

一、遇见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() {
    }

在源码中也有所体现。

以上是关于java线程安全的整型类AtomicInteger的主要内容,如果未能解决你的问题,请参考以下文章

JAVA 中无锁的线程安全整数 AtomicInteger介绍和使用

并发线程安全的 AtomicInteger

Java并发编程深入分析AtomicInteger

Java高性能并发计数器之巅峰对决

深入解析Java AtomicInteger 原子类型

使用AtomicInteger原子类代替i++线程安全操作