栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java比较和交换语义和性能

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java比较和交换语义和性能

当然,弱比较和交换 可以
充当完整的volatile变量,具体取决于JVM的实现。实际上,如果在某些体系结构上不可能以比普通CAS更高的性能实现弱的CAS,我不会感到惊讶。在这些体系结构上,很可能实现弱CAS与完全CAS完全相同。或者,可能仅仅是因为您的JVM在使弱CAS变得特别快方面没有进行太多优化,因此
当前的 实现只是调用了完整的CAS,因为它实现起来很快,以后的版本会对此进行完善。

JLS只是说一个弱的CAS不会建立 事前 关联,所以根本不能 保证
它引起的修改在其他线程中是可见的。在这种情况下,您所获得的只是保证比较和设置操作是原子的,但不能保证(可能)新值的可见性。这与保证它 不会
被看到是不同的,因此您的测试与此一致。

通常,尝试通过实验避免对与并发相关的行为做出任何结论。有很多变量需要考虑,如果您不遵循JLS保证的正确性,那么您的程序 可能会随时
中断(也许在不同的体系结构上,也许是在稍加提示的更积极的优化下)更改代码的布局,也许是在将来不存在的JVM的未来版本等下)。有 从来没有
一个理由认为你可以逃脱东西是说没有得到保证,因为实验表明,“它的工作原理”。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430978.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号