источник для родных операций sun.misc. Небезопасные в Java - PullRequest
5 голосов
/ 19 июля 2011

Я скачал "openjdk-6-src-b23-05_jul_2011", чтобы взглянуть на собственные реализации для методов в sun.misc.Unsafe. например сравнитеAndSwapInt (...), но я не могу найти что-либо в загруженных источниках openjdk. я хочу получить представление о том, как эти методы выглядят (меня интересовали атомарные вещи, которые предоставляет jdk).

Кто-нибудь может указать мне правильное местоположение (я)?

$ ls jdk/src/
linux  share  solaris  windows

$ ls hotspot/src/os/
linux  posix  solaris  windows

любая помощь приветствуется

Marcel

Ответы [ 2 ]

11 голосов
/ 19 июля 2011

Сама реализация небезопасных методов не зависит от ОС, поэтому ее можно найти в hotspot/src/share/vm/prims/unsafe.cpp. Он делегирует hotspot/src/share/vm/runtime/atomic.cpp, который включает файлы, специфичные для ОС и ЦП, такие как hotspot/src/os_cpu/windows_x86/atomic_windows_x86.inline.hpp.

0 голосов
/ 19 июля 2011

Gcc атомарные встроенные элементы, такие как java

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

Но проблема в том, что стандарта нет, так как при переходе на солярис вам понадобится что-то еще.Поэтому при смене платформы вы должны использовать другой системный вызов.

...