5

Es gibt eine specification of Java memory model.Implementierung des Java-Speichermodells?

Und ich möchte in den Quellcode eintauchen, um tatsächlich zu untersuchen, wie diese Mechanismen implementiert werden. (z. B. synchronisiert, flüchtig, ..., usw.)

Aber die Codebasis ist so riesig, ich habe keine Ahnung, wo ich anfangen soll.

Könnte jemand mir einige Hinweise geben? Vielen Dank!

+0

I würde vorschlagen, [JamVM] (http://jamvm.sourceforge.net/) anzuschauen. Es ist deutlich kleiner als OpenJDK. –

+0

cool ~ danke! –

Antwort

8

Sie können mit der Klasse synchronizer.cpp in der aktuellen Version des JDK beginnen. Bereiten Sie sich eine starke Kanne Kaffee vor - Sie haben einen der komplexesten Bereiche der JVM ausgewählt, um mit dem Quellcode zu beginnen.

Wenn Sie dies noch nicht getan haben, würde ich vorschlagen, dass Sie sich Bill Pugh's page on the Java Memory Model und Doug Leas recommendations for compiler writers on implementing the Java memory model ansehen.

Sie können auch etwas von der Ausführung der Debug-JVM mit der aktivierten Option abrufen, um die JIT-kompilierte Assembly auszugeben, die Sie dann untersuchen können. (Dies wird Ihnen nicht alles sagen, aber es könnte Ihnen einige Hinweise geben: Ich denke, einige der Dinge, die es druckt, werden Ihnen sonst Dinge im JDK-Quellcode geben ...)

+0

Wow, danke für deine Hilfe! Wie du schon sagtest, sieht es nach einer harten Arbeit aus ... –

Verwandte Themen