我们什么时候应该将字段定义为“易变”?什么时候没必要?

时间:2016-06-16 23:22:54

标签: java multithreading concurrency

我理解volatile应该在类字段上使用,以防止JVM缓存该值,以便在读取时始终是最新值。

如果我的理解是正确的,那么是否意味着我们应该在多线程线程安全环境中使用volatile定义所有字段?什么时候不必将字段定义为volatile

1 个答案:

答案 0 :(得分:0)

如果没有其他机制提供同步(例如volatile s),多个线程将无法访问该字段,则无需定义字段lock

如果某个类的每个成员都可以这样访问,那么每个字段都应该如此标记。