1、ThreadLocal,每个线程保存自己的共享对象。
2、CAS,参数有三个 (待更新变量的当前值, 预期值, 待更新的新值)。
CAS的全称为Compare-And-Swap,是一条CPU的原子指令,其作用是让CPU比较后原子地更新某个位置的值,经过调查发现,其实现方式是基于硬件平台的汇编指令,就是说CAS是靠硬件实现的,JVM只是封装了汇编调用,那些AtomicInteger类便是使用了这些封装后的接口。
1、ThreadLocal,每个线程保存自己的共享对象。
2、CAS,参数有三个 (待更新变量的当前值, 预期值, 待更新的新值)。
CAS的全称为Compare-And-Swap,是一条CPU的原子指令,其作用是让CPU比较后原子地更新某个位置的值,经过调查发现,其实现方式是基于硬件平台的汇编指令,就是说CAS是靠硬件实现的,JVM只是封装了汇编调用,那些AtomicInteger类便是使用了这些封装后的接口。