java中原生sun.misc.Unsafe操作的源代码

时间:2011-07-19 16:42:38

标签: java multithreading native atomic openjdk

我已经下载了“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

任何帮助表示赞赏

烫发

2 个答案:

答案 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时,你需要别的东西。因此,在更改平台时必须使用不同的系统调用。