volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”,即当一个线程修改一个共享变量是,另一个线程能够读到这个修改的值。volatile比synchronized的使用和执行成本低,因为它不会引起上下文的切换和调度。
两条实现原则:
1. Lock前缀指令会引起处理器缓存写回到内存;
2. 一个处理器的缓存写回到内存会导致其他处理器的缓存无效。
volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”,即当一个线程修改一个共享变量是,另一个线程能够读到这个修改的值。volatile比synchronized的使用和执行成本低,因为它不会引起上下文的切换和调度。
两条实现原则:
1. Lock前缀指令会引起处理器缓存写回到内存;
2. 一个处理器的缓存写回到内存会导致其他处理器的缓存无效。