5

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

任何帮助表示赞赏

马塞尔

4

2 回答 2

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.

于 2011-07-19T16:56:46.717 回答
0

像 java 一样提供的 Gcc atomic builtins

http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html

但问题是没有标准,当您迁移到 solaris 时,您将需要其他东西。因此,您必须在更改平台时使用不同的系统调用。

于 2011-07-19T19:34:20.467 回答