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

安全でないメソッドの実装自体は OS 固有ではないため、 に記載されていhotspot/src/share/vm/prims/unsafe.cppます。hotspot/src/share/vm/runtime/atomic.cppなどの OS および CPU 固有のファイルを含むに委任しますhotspot/src/os_cpu/windows_x86/atomic_windows_x86.inline.hpp

于 2011-07-19T16:56:46.717 に答える
0

Java のように提供される Gcc アトミック ビルトイン

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

しかし問題は、標準がないことです。solaris に移行すると、別のものが必要になります。したがって、プラットフォームを変更すると、別のシステム コールを使用する必要があります。

于 2011-07-19T19:34:20.467 に答える