int 基元类型的易失性声明
我引用了Oracle关于原子访问的Java文档
- 读取和写入对于引用变量和大多数基元变量(除长变量和双精度变量之外的所有类型)都是原子的。
- 读取和写入对于所有声明的变量(包括长变量和双精度变量)都是原子的。
volatile
我了解工作原理。但是,在第二个语句中提到显式声明 for 和变量以获得原子访问的要求,是使第一个语句中引用变量和大多数原始变量(除 long 和 double 之外的所有类型)的声明成为可选的。volatile
volatile
long
double
volatile
但是我看到代码使用基元类型的显式声明来实现原子访问;如果不这样做,不能保证原子访问。volatile
int
int variable1; // no atomic access
volatile int variable2; // atomic access
我错过了什么吗?