采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
对于flag=false改成flag=true不也是组合操作嘛?即先取出flag,然后修改为true,然后在保存进内存。觉得跟i++是一个道理啊?为何老师说这个boolean就是原子操作了?
同学好,这个不是组合吧,是直接赋值了,而且volatile的作用是让工作内存的数据失效,读取的时候是从主内存读取。flag=true本身就是一个赋值操作,因此是原子的,而i++是首先获取变量i的值,对它里面的值+1,再覆盖原先的值,因此是非原子的;flag=true是不需要获取原先值,直接替换的。
假如此时shutdown=!shutdown,那么这个时候还是原子操作吗?
同学直接通过字节码看看,这个是非原子操作
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
1.8k 27
2.7k 22
1.2k 15
1.4k 14
1.3k 14