volatile的用法

一直以来都搞不清既然对volatile既然不能保证原子性,那为什么还要用它?解释如下:
https://www.cnblogs.com/sunrunzhi/p/3930297.html
在使用volatile关键字时要慎重,并不是只要简单类型变量使用volatile修饰,对这个变量的所有操作都是原来操作,当变量的值由自身的上一个决定时,如n=n+1、n++ 等,volatile关键字将失效,只有当变量的值和自身上一个值无关时对该变量的操作才是原子级别的,如n = m + 1,这个就是原级别的。所以在使用volatile关键时一定要谨慎,如果自己没有把握,可以使用synchronized来代替volatile。

猜你喜欢

转载自blog.csdn.net/gaotanpan3666/article/details/83928813