84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
在tij中的volatile中有这么一句话:
当一个域依赖于它之前的值时(如自增), 那么volatile就无法工作了. 如果某个域的值受到其他域的值的限制, 那么volatile也无法工作, 例如Range类的lower和upper边界值必须遵循lower<=upper
这段话想要表达的意思是什么?
认证高级PHP讲师
通俗的说,标记为volatile的值,可能不可预料的被改变,因此不可以缓存,每次应该从主存中读取。自增操作,在读取和写入之间,这个值有可能改变,因此无法写入正确的结果。同样,这个值改变不受控,所以可能不满足不变式。
说的应该是volatile不能保证操作的原子性吧
volatile
参阅:java中volatile关键字的含义
通俗的说,标记为volatile的值,可能不可预料的被改变,因此不可以缓存,每次应该从主存中读取。
自增操作,在读取和写入之间,这个值有可能改变,因此无法写入正确的结果。
同样,这个值改变不受控,所以可能不满足不变式。
说的应该是
volatile
不能保证操作的原子性吧参阅:java中volatile关键字的含义