There are certain documents that you ought to make it a habit to read, and re-read, every so often.
At least, if you aspire to be, or to remain, an expert Java programmer.
Alexey Shipilev's epic and exhaustive explanations of the Java Memory Model are surely on that list.
- Java Memory Model Pragmatics (transcript)
This post is a transcript of the "Java Memory Model Pragmatics" talk I gave during this year at different conferences, mostly in Russian. There seems to be a limited supply of conferences in the world which can accommodate such a long talk, and being in need for exposing some background reading for my JMM Workshop at JVMLS this year, I decided to transcribe it.
- Close Encounters of The Java Memory Model Kind
In this post, we will try to follow up on particular misunderstandings about Java Memory Model, hopefully on the practical examples. The examples use the APIs from the jcstress suite, which are concise enough for a reader, and are runnable.
At one time I thought I knew this stuff, and perhaps I did, but I find that if I re-read it about once every six months or so, each time I do so I get smarter.
I suppose that this is sort-of the software engineering equivalent of "continuing education". They don't really teach you this sort of thing in school (though I learned about computers before there was such a thing as Computer Science in schools), and you won't (easily) pick this sort of thing up during your day-to-day work.
You just have to find a few, quiet hours every so often, pour yourself a strong cup of coffee, and dig in.