【发布时间】:2018-10-13 15:43:39
【问题描述】:
我了解 synchronize 和 volatile 的作用以及它们的使用位置。我刚刚学习了 volatile,我对什么时候可以在没有 volatile 的情况下使用同步感到困惑。如果我同步一个对象,我需要阻止其他线程使用相同的对象,但在大多数情况下,我会这样做来编辑对象,如果是这样,我需要在我正在编辑的属性上设置 volatile 。
以下代码是关于竞争条件的,我想知道为什么我从未见过有人在 count 变量上使用 volatile:
public synchronized void add(int value){
this.count += value;
}
这里不应该算 volatile 吗?
我只是想找出一个可以在没有 volatile 的情况下使用 synchronize 的情况,一段代码会有所帮助。
【问题讨论】:
标签: java multithreading synchronization volatile