目录
1.2、AtomicInteger 的 getAndIncrement 源码解析
一、CAS
1.1、CAS 概述
CAS(Compare-and-Swap)顾名思义,叫做比较和交换,大概执行过程是什么样呢?假设现有两个寄存器A、B和一个内存M,通过对寄存器A中的值与内存M的值进行比较是否相同,来决定寄存器B中的值是否与内存中M的值进行交换,若不相同则不会发生什么,若相同则将寄存器B的值与内存M的值进行交换;
1.2、AtomicInteger 的 getAndIncrement 源码解析
AtomicInteger 类中的 getAndIncrement 方法,用来自增1 的,并且是线程安全的. 为了可读性,将源码转化成了以下伪代码:
class AtomicInteger {
private int value;
public int getAndIncrement() {
int oldValue =