编程语言
首页 > 编程语言> > 盘点JAVA中基于CAS实现的原子类, 你知道哪些?

盘点JAVA中基于CAS实现的原子类, 你知道哪些?

作者:互联网

前言

JDK中提供了一系列的基于CAS实现的原子类,CAS 的全称是Compare-And-Swap,底层是lock cmpxchg指令,可以在单核和多核 CPU 下都能够保证比较交换的原子性。所以说,这些原子类都是线程安全的,而且是无锁并发,线程不会频繁上下文切换,所以在某些场景下性能是优于加锁。

本文就盘点一下JDK中的原子类,方便我们后续拿来使用。

基础原子类

这边以AtomicInteger讲解下它的API和用法。

构造方法:

常用API:

使用:

原理分析:

整体实现思路: 自旋(循环) + CAS算法

public final int getAndIncrement() {
        return unsafe.getAndAddInt(this, valueOffset, 1);
 }

标签:Java,jdk,语言,运行环境,javac,高级语言,JVM
来源: