5

Istnieje specification of Java memory model.Wdrożenie modelu pamięci Java?

I chcę zanurkować w kodzie źródłowym, aby zbadać, w jaki sposób te mechanizmy są zaimplementowane. (np. zsynchronizowany, lotny, ..., itp.)

Ale podstawa kodu jest tak ogromna, że ​​nie mam pojęcia, od czego zacząć.
(http://www.java2s.com/Open-Source/Java-Document/CatalogJava-Document.htm)

Czy ktoś może mi podać jakieś wskazówki? Wielkie dzięki!

+0

I sugerowałbym, patrząc na [JamVM] (http://jamvm.sourceforge.net/). Jest znacznie mniejsza niż OpenJDK. –

+0

fajne ~ dziękuję! –

Odpowiedz

8

Możesz zacząć od sprawdzenia klasy synchronizer.cpp w bieżącej wersji JDK. Przygotuj sobie mocną kawę - wybrałeś jeden z najbardziej złożonych obszarów JVM, by zacząć zagłębiać się w kod źródłowy.

Jeśli jeszcze tego nie zrobiłeś, sugerowałbym również, abyś spojrzał na Bill Pugh's page on the Java Memory Model i recommendations for compiler writers on implementing the Java memory model Douga Lei.

Możesz także zbierać informacje o uruchamianiu debugującej maszyny JVM z włączoną opcją, aby wyprowadzić złożony zestaw JIT, który możesz następnie sprawdzić. (To nie powie wszystkiego, ale może dać ci kilka wskazówek: Myślę, że niektóre z rzeczy, które zostaną wydrukowane, jeśli nic innego nie da ci pewnych rzeczy do wyszukania w kodzie źródłowym JDK ...)

+0

Wow, dzięki za pomoc! Jak powiedziałeś, wygląda to na trudną pracę ... –

Powiązane problemy