volatile

jvm运行时,为了保证运行的效率,会把内存中的值load到工作内存中,修改值会在工作内存中修改,在多线程中,有可能内存中的值和工作内存中的值不一致,volatile关键字保证变量只能从内存中取值,对所有线程而言,值都是一致的,但volatile不能保证原子性,所以也是线程不安全的。volatile可以禁止进行指令重排序,指令重排序是Java虚拟机运行时只保证指令运行结果于代码有一致性,不保证顺序也有一致性,使用volatile可以禁止指令重排序
全部评论
不是为了工作效率吧,就是为了屏蔽底层缓存一致性协议对java程序员做出保证的一种模型吧
点赞 回复 分享
发布于 2023-06-30 09:00 江苏

相关推荐

不愿透露姓名的神秘牛友
07-21 17:59
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务