What does the volatile keyword in Java do? For years I thought the keyword was quite obsolete, synchronization of values between the memory multiple processors seemed quite exotic. Since even modern-day processors have multiple cores, the keyword has become more relevant. A few months ago I saw a good presentation by Peter Veentjer on NLJug, that you can see online here. I can recommend the presentation.
Peter Veentjer also hinted about the Java Transaction Memory model. He was going to present on this subject on JSpring. Unfortunately I couldn't attend the presentation myself, but I guess the presentation will be online soon as well.
While searching for more information (that I could copy&paste) on the volatile keyword, I found the following excellent serie of articles on site called JavaMex: The volatile keyword in Java. I hadn't heard of the site before, from what I have read so far, the site has some excellent content. Amazingly what fine information you can find online for free!