上 并发编程一:深入理解JMM和并发三大特性( 四 )


看下()的源码
底层也是调了fence()
方案六:使用为什么可以跳出循环
可以看到的value值被 final 修饰了 。jvm对final定义是不可变的,保证final修饰的变量具有可见性
方案七使用了凭证和方案五类似,底层调用了fence()