仅限发布形式的CAS

Vla*_* G. 5 java jvm compare-and-swap kamon

我不小心从Kamon Monitoring工具中遇到了Striped64.java类.在第95行,我发现了这个评论:

JVM intrinsics note: It would be possible to use a release-only
form of CAS here, if it were provided.
Run Code Online (Sandbox Code Playgroud)

虽然我理解CAS是什么,但我无法找出CAS的唯一形式.有人可以对此有所了解吗?

the*_*472 4

我无法找出 CAS 的仅发布形式是什么。

这指的是C++ 内存模型中原子的内存排序约束。其中一些不能完全用早于C++内存模型的术语来表达(另请参阅开发人员的 JMM 手册),因此它们目前无法通过标准库提供。

这将随着 Java9 的改变而改变,其中varhandles将公开与 C++ 语义匹配的内存访问(消耗顺序除外)。

另请注意,您链接的 java 类已从 jsr166 存储库复制,该存储库是 JDK juc 包的上游版本。