java - 仅发布形式的 CAS

标签 java jvm compare-and-swap kamon

我不小心遇到了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/

相关文章:

java.io.FileNotFoundException : (Permission denied) when writing an object using ObjectOutputStream 错误

java - 检查参数字符串 Java 正则表达式

java - 哪些操作可能(不会)抛出 StackOverflowError?

c - 假设 pid_t 始终是 int 类型(如标准中所定义)是否安全?

c++ - 原子写入和 volatile 读取

java - 在Java中,如何模拟 "converting negative numbers casted by unsigned char in c"?

java - 如何通过环境变量设置系统属性?

jvm - 关于预写屏障上的 g1 gc 的问题

java - Java 中是否有双向循环链表的内置接口(interface)?