在java中使用volatile变量

时间:2016-12-22 11:06:39

标签: java multithreading

我正在阅读实践中的Java并发书

我遇到了挥发性声明应该在以下标准中使用

  1. 写入变量不依赖于其当前值,或者您 可以确保只有一个线程可以更新/写入值。
  2. 变量不参与其他状态的不变量 变量
  3. 其他任何原因都不需要锁定 正在访问变量。
  4. 任何人都可以用例子向我解释这三个场景。

1 个答案:

答案 0 :(得分:1)

回答你的观点:

  1. volatile是关于读取的值;它确保写入对所有线程可见。它并不能防止写入竞争条件
  2. 写入的原子性仅在现场; volatile不提供对其他字段的写入协调
  3. 其他操作不受保护或包含在写入