我已经下载了“openjdk-6-src-b23-05_jul_2011”来查看sun.misc.Unsafe中方法的原生实现。例如compareAndSwapInt(...)但我无法在下载的openjdk源代码中找到任何内容。我想知道这些方法是怎样的(我对jdk提供的原子内容感兴趣)。
任何人都可以将我指向正确的位置吗?
$ ls jdk/src/
linux share solaris windows
$ ls hotspot/src/os/
linux posix solaris windows
任何帮助表示赞赏
烫发
答案 0 :(得分:11)
不安全方法本身的实现不是特定于操作系统的,因此可以在hotspot/src/share/vm/prims/unsafe.cpp
中找到它。它委托给hotspot/src/share/vm/runtime/atomic.cpp
,其中包括操作系统和CPU特定文件,例如hotspot/src/os_cpu/windows_x86/atomic_windows_x86.inline.hpp
。
答案 1 :(得分:0)
像java一样提供的gcc atomic builtins
http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html
但问题是没有标准,当你搬到solaris时,你需要别的东西。因此,在更改平台时必须使用不同的系统调用。