【发布时间】:2012-01-30 04:14:30
【问题描述】:
在 Java 中,当我们想确保编译器不应该通过保留变量的本地副本来进行优化时,我们将变量设置为 volatile。将变量用作 volatile 可确保线程不会使用变量的本地副本,但会使用存储在主存储器中的变量。但是,这是否意味着 volatile 变量是线程安全的?此外,在原始类型和我们使用用户定义对象的情况下,它有何不同?
【问题讨论】:
标签: java thread-safety compiler-optimization