【发布时间】:2020-01-08 00:41:09
【问题描述】:
Java 编译器(版本 5 或更高版本)执行的优化可以删除变量的“volatile”声明吗?
更准确地说,在以下任何一种情况下,一个易失性变量是否可以变成一个非易失性变量:
如果没有多线程,即如果应用程序从不使用多个线程?
如果一个 volatile 变量由一个线程写入但从未被任何其他线程访问过?
如果一个 volatile 变量被多个线程读取但从未修改(只读,无写入)?
【问题讨论】:
标签: java multithreading