首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >了解->可见性的VarHandle内存语义

了解->可见性的VarHandle内存语义
EN

Stack Overflow用户
提问于 2019-06-27 16:33:36
回答 1查看 132关注 0票数 1

通过内存语义和模型,我们通过指令重新排序和绕过屏障的缓存刷新/更新来理解它。在Java的Varhandle类中,dey引入了许多内存语义,但很少解释它到底是做什么的?我有以下问题和澄清所需的->

a)普通的set和get和普通的内存访问一样,没有内存排序限制,也没有可见性保证?b)不透明内存语义->它到底是做什么的?这是一个简单的内存读写主存(不涉及缓存),没有任何内存排序限制?文档显示,->保证了对单个线程的相同变量的有序访问。c) aquire/release和易失性之间的区别??

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-07-05 18:28:30

这是我从下面的docs -> http://gee.cs.oswego.edu/dl/html/j9mm.html Acquire/Release versus Sequentially Consistent memory order中得到的

a)纯模式->仅原语和引用get和set是原子的,允许所有排序,没有缓存刷新。b)不透明的->保证程序顺序线程间只有一个变量可见。没有保证/约束其他变量的可见性线程间c)获取/释放->相同变量的全订单保证加发生在保证之前。在版本d)易失性->对所有易失性变量进行完全有序的内存访问时,是否在获取和缓存刷新时缓存无效。完全按照程序顺序进行。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56787057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档