volatile 关键字如何保证内存可见性

为什么新线程对主线程进行的变量修改没有察觉? 1、JIT编译器对新线程的代码进行优化,导致新线程在线程上下文中察觉不到变量的修改 2、新线程可能会从本地缓存或是寄存器中获取变量数据,而不是从速度更慢的内存中获取   volatile 关键字如何保证内存可见性? volatile标记的变量,会警告JIT编译器,标记volatile标记的变量可能会被其他线程修改,不要执行任何可能影响其访问顺序的优化。
相关文章
相关标签/搜索