java - Atomic Integer incrementAndGet() 线程安全吗?

标签 java multithreading atomicinteger

Atomic Integer incrementAndGet() 方法线程安全吗?我没有看到其中有任何 synchronized 关键字的使用。我正在使用以下代码生成唯一 ID:

public enum UniqueIdGenerator {
    INSTANCE;

    private AtomicLong instance = new AtomicLong(System.currentTimeMillis());

    public long incrementAndGet() {
        return instance.incrementAndGet();
    }
}

我想知道调用该方法以生成唯一 ID 的多个线程是否会导致任何问题。

UniqueIdGenerator.INSTANCE.incrementAndGet()

谢谢!

最佳答案

是的,是的。它使用基于名为 Unsafe

的内部 JDK 类的同步以外的其他更有效的线程安全机制

关于java - Atomic Integer incrementAndGet() 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44053300/

相关文章:

multithreading - 在vb6编程中使用线程

java - 我应该关心 Lollipop 及以后的主线程和 UI 线程之间的区别吗?

java - ExecutorService 和 AtomicInteger : RejectedExecutionException

java - AtomicInteger 中的 get() 与 intValue() 方法

java - 如何检查字符串中的所有“字符是否都被转义

python - 异步交互式 Python 脚本

java - Kafka : How to consume, 操作、确认(手动)并将结果发送到新主题

java - AtomicInteger 比同步慢

java - 简单密码程序的麻烦——Java

java - Tomcat 阀门设置