我读到读取和写入对于引用变量和大多数原始变量(除了long和double之外的所有类型)都是原子的。所以我的问题是:是否存在宣布volatile int i;
或volatile Object o;
有意义的情况?
这不是重复,因为我的问题是它对某些类型是否毫无意义,如果不是,为什么呢?我知道有些情况你需要它/有意义的地方(对于double和long)我无法在另一个线程中找到解释,其中差异在volitile int i
和int i
之间(在这两种情况下,读取和写入都是原子的)。 https://docs.oracle.com/javase/tutorial/essential/concurrency/atomic.html我正在寻找一个扩展,为什么它不能使用volatile关键字,而不是我应该使用它的情况。