我不小心遇到了Striped64.java来自 Kamon 监控工具的类。在第 95 行,我发现了这条评论:
JVM intrinsics note: It would be possible to use a release-only
form of CAS here, if it were provided.
虽然我了解 CAS 是什么,但我无法找出CAS 的仅发布形式 是什么。有人可以阐明这一点吗?
最佳答案
I am unable to find out what a release-only form of CAS is.
这指的是在 C++ memory model 的术语中对原子的内存排序约束。 .其中一些无法用 java memory model 的术语完全表达它早于 C++ 版本(另请参阅 the JMM cookbook for developers ),因此目前无法通过标准库获得它们。
这将随着 Java9 而改变,其中 varhandles将公开与 C++ 语义匹配的内存访问,但消费顺序除外。
另请注意,您链接的 java 类已从 jsr166 存储库复制,该存储库是 JDK j.u.c. 的上游版本。包。
关于java - 仅发布形式的 CAS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41979496/