Реализация модели памяти Java? - PullRequest
5 голосов
/ 16 января 2011

Существует спецификация модели памяти Java .

И я хочу погрузиться в исходный код, чтобы на самом деле исследовать, как эти механизмы реализованы.(например, синхронизированный, изменчивый, ... и т. д.)

Но кодовая база настолько велика, что я не знаю, с чего начать.
(http://www.java2s.com/Open-Source/Java-Document/CatalogJava-Document.htm)

Можеткто-нибудь подскажет? Большое спасибо!

1 Ответ

8 голосов
/ 16 января 2011

Вы можете начать с просмотра класса synchronizer.cpp в текущей версии JDK.Приготовьте себе крепкую чашку кофе - вы выбрали одну из самых сложных областей JVM, чтобы начать углубляться в исходный код.

Если вы еще этого не сделали, я бы также предложилвзгляните на страницу Билла Пью о модели памяти Java и рекомендации Дуга Ли для авторов компиляторов по реализации модели памяти Java .

Вы также можете кое-что почерпнутьот запуска отладочной JVM с включенной опцией для вывода JIT-скомпилированной сборки, которую затем можно проверить.(Это не скажет вам всего, но может дать вам некоторые подсказки: я думаю, что некоторые вещи, которые он печатает, будут, если ничто другое не даст вам некоторые вещи для поиска в исходном коде JDK ...)

...