synchronized、volitile实现内存可见性

指令重排序:编译器或处理器为提供程序性能而做的优化

  1. 编译器优化的重排序(编译器优化)

  2. 指令级并行重排序(处理器优化)

  3. 内存系统的重排序(处理器优化)

线程执行互斥代码过程:

  1. 获得互斥锁

  2. 清空工作内存

  3. 从主内存拷贝变量的最新副本到工作内存

  4. 执行代码

  5. 将更改后的共享变量的值刷新到主内存

  6. 释放互斥锁

你可能感兴趣的:(synchronized、volitile实现内存可见性)