采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师你好。在32位虚拟机下,long和double操作并不是原子的,所以多线程操作中读写会出现问题。volatile并不能保证原子性,但是用volatile修饰long和double在32位下的操作为啥就变成原子的了呢?
同学好,不是说因为volatile变成原子的,volatile只是保证可见性,由于long和double不像一般的基本类型一样一次性完成赋值操作,是要分成两段进行,而加上volatile后,jvm应该是被设计成确保long和double是具备原子性的,但本身不是volatile来确保原子性的
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
1.8k 27
2.7k 22
1.2k 15
1.4k 14
1.3k 14