标签:内存数据 处理器 cpu 其他 缓存 操作 内存地址 sync syn
1、volatile可以保证可见性,不能保证一致性,但是与cas操作结合在实现并发上性能很不错,java并发包下不少类都有这种实现方式。
2、相比synchronized执行成本更低,因为它不会引起线程上下文的切换和调度。
3、volatile实现可见性原理:
声明为volatile后,编译成汇编指令时,增加lock指令,那么cpu对于lock前缀的指令会增加两项操作:将当前处理器缓存行的数据会回写到系统内存;这个回写操作会引起其他cpu缓存了内存地址到数据无效,重新读取系统内存数据。
标签:内存数据 处理器 cpu 其他 缓存 操作 内存地址 sync syn
原文地址:https://www.cnblogs.com/bluej/p/9370769.html