5

C'è un specification of Java memory model.Implementazione del modello di memoria Java?

E voglio approfondire il codice sorgente per analizzare effettivamente come questi meccanismi sono implementati. (ad esempio, sincronizzato, volatile, ..., ecc.)

Ma il codebase è così grande, non ho idea da dove cominciare.
(http://www.java2s.com/Open-Source/Java-Document/CatalogJava-Document.htm)

Qualcuno potrebbe darmi qualche indizio? Grazie mille!

+0

I suggerirei di guardare [JamVM] (http://jamvm.sourceforge.net/). È significativamente più piccolo di OpenJDK. –

+0

cool ~ grazie! –

risposta

8

Si potrebbe iniziare osservando la classe synchronizer.cpp nella versione corrente di JDK. Preparati un bel caffè: hai scelto una delle aree più complesse della JVM per iniziare a scavare nel codice sorgente.

Se non lo hai già fatto, ti suggerisco di dare un'occhiata allo Bill Pugh's page on the Java Memory Model e al numero recommendations for compiler writers on implementing the Java memory model di Doug Lea.

È anche possibile raccogliere qualcosa dall'esecuzione della JVM di debug con l'opzione attivata per emettere l'assembly compilato JIT che è quindi possibile esaminare. (Questo non ti dirà tutto, ma potrebbe darti alcuni suggerimenti su: Penso che alcune delle cose che stamperà saranno se non ti daranno alcune cose da cercare nel codice sorgente JDK ...)

+0

Wow, grazie per il tuo aiuto! Come hai detto, sembra un lavoro duro ... –

Problemi correlati