请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

使用volatile修饰long和double为啥就变成原子的?

老师你好。在32位虚拟机下,long和double操作并不是原子的,所以多线程操作中读写会出现问题。volatile并不能保证原子性,但是用volatile修饰long和double在32位下的操作为啥就变成原子的了呢?

正在回答 回答被采纳积分+3

1回答

翔仔 2019-10-13 00:01:14

同学好,不是说因为volatile变成原子的,volatile只是保证可见性,由于long和double不像一般的基本类型一样一次性完成赋值操作,是要分成两段进行,而加上volatile后,jvm应该是被设计成确保long和double是具备原子性的,但本身不是volatile来确保原子性的

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信