原子变量 为了引出原子变量这个概念,我们先看一个例子. package com.ccfdod.juc; public class TestAtomicDemo { public static void main(String[] args) { AtomicDemo ad = new AtomicDemo(); for (int i = 0; i < 10; i++) { new Thread(ad).start(); } } } class AtomicDemo implements Runn…
/** * CAS(Compare-And-Swap)算法保证了数据的原子性 * CAS算法是硬件对于并发操作共享数据的支持 * CAS包含了3个操作数: * 内存值 V 看成两步 读取内存值为1步 * * 预估值 A 后面两步同时发生 * 更新值 B * 当且仅当V == A时,V = B,否则不做任何操作 * 下面用Java锁模拟CAS算法: */ public class CAS { private int value =0; public CAS() { } public CAS(int…