有一个specification of Java memory model。
我想深入研究源代码,以实际研究这些机制是如何实现的。 (例如,同步,易失性,......等)
但代码库是如此巨大,我不知道从哪里开始。 (http://www.java2s.com/Open-Source/Java-Document/CatalogJava-Document.htm)
谁能给我一些线索?非常感谢!
您可以从查看当前版本的JDK中的synchronizer.cpp类开始。为自己准备一大杯咖啡 - 你已经选择了JVM最复杂的领域之一来开始深入研究源代码。
如果你还没有这样做,我还建议你看看Bill Pugh's page on the Java Memory Model和Doug Lea的recommendations for compiler writers on implementing the Java memory model。
您也可以通过打开选项运行调试JVM来收集一些内容,以输出您可以检查的JIT编译的程序集。 (这不会告诉你一切,但它可能会给你一些指示:我认为它打印的一些东西,如果没有别的东西给你在JDK源代码中搜索的东西......)