java 关于volatile读操作与volatile修饰引用类型变量的问题
你的这个结论不能完全成立,因为这不是虚拟机规范里规定的。不同的虚拟机实现可能是不同的,比如你的代码放在IBM的J9 VM上运行,即使a不被声明为volatile,程序依旧可以结束:
【java 关于volatile读操作与volatile修饰引用类型变量的问题】
红箭头那行代表你的程序执行结束了。
所以你总结的这个规则是不被虚拟机所保证的。
■网友
我非常赞同你的思考角度。各种帖子众说纷纭,各种罗列知识点,还是没有搞清楚volatile前因后果。先说说MESI和volatile啥关系!我的第一个理解是,lock前缀激发了cpu使用mesi协议!(换了角度,如果cpu如果给予mesi直接强一致,那volatile还有毛用)再换个思考,那么sychronized又是如何来解决缓存问题的?
■网友
这是spring源码,源码告诉我们要怎么用,不要惊慌,楼主总结的不错,所以我们应该这么玩volatile
推荐阅读
- 过节■江苏省委省政府办公厅下发关于做好2021年元旦春节期间有关工作的通知
- |徐州市出台《关于优化创新创业生态系统 提升区域科技创新活力的实施意见》及实施细则
- 雨下|全球关于禁售燃油车只是理论上可行吗
- dart这编程语言现在发展怎么样了,语法与Java,c#很相似,甚至更简洁
- 关于用phpfsocket 写Post, 模拟http 报文怎样写入要传输的处理数据
- 智叔|很多家长还在整箱买:谈谈关于牛奶的17个真相警惕这些列入黑名单的“假牛奶”
- 关于微信小程序的思考:运营者该何去何从
- 关于人工智能虚拟人的一些问题
- 知乎上关于人生经验的介绍是否可能对青少年造成潜在危害
- Java工程师和C++工程师在工作上有啥区别哪个更适合自身发展