对于原子性的操作,意味着该操作要么发生并且完成,要么什么都不发生。
有些操作是原子性的,例如
1. 读、写引用变量、基础变量(long,double除外)是具备原子性的
2. 读、写声明成volatile变量。
任何被volatile修饰的变量,都保证了可见性,也就是说任何对volatile变量的写操作,与之后对该变量的读操作都具备“happens-before”的关系。但是由于volatile关键字只保证了可见性,而未保证互斥性,因此,内存不一致的错误依然会发生。
对于原子性的操作,意味着该操作要么发生并且完成,要么什么都不发生。
有些操作是原子性的,例如
1. 读、写引用变量、基础变量(long,double除外)是具备原子性的
2. 读、写声明成volatile变量。
任何被volatile修饰的变量,都保证了可见性,也就是说任何对volatile变量的写操作,与之后对该变量的读操作都具备“happens-before”的关系。但是由于volatile关键字只保证了可见性,而未保证互斥性,因此,内存不一致的错误依然会发生。