AutomicInteger : volatile + CAS
总线LOCK MESI 两个协议 TODO
volatile的可见性和禁止重排序是怎么实现的:
DCL场景:
new操作会在字节码层面生成两个步骤: 分配内存、调用构造器 然后把引用赋值给singleton
不加volatile则会发生指令重排,可能得到不完整的对象
知识来源:
【并发与线程】并发三大特性_哔哩哔哩_bilibili
【2022年面试】volatile的可见性和禁止指令重排序怎么实现的_哔哩哔哩_bilibili