I had a fun day today doing a private talk at the CME Group in Chicago. They were kind enough to invite me up to do a talk on concurrency and Terracotta and a smaller breakout session. There were a lot of good questions during the talk and some interesting discussions afterwards, so it was a day full of concurrency.
One question asked was about things to watch in concurrency to leverage multi-core technology. I figured I would just make a blog here for what I’m watching. Probably most direct is that I maintain a concurrency link blog, which is frequently updated with new concurrency information.
In Java, I’m watching all the JSR 166y changes for Java 7, including the most prominent new fork/join package. Other interesting items include the Phaser and Fences classes and the new G1 garbage collector.
In other languages, I’m doing a lot of external study on Erlang, Scala, and Clojure – probably the big 3 languages that are really trying to tackle concurrency head-on. I’ve also been doing some reading on the background behind the agent model with stuff like Hoare’s original Coordinating Synchronous Processes book and some of Haller and Odersky’s actor papers. I’ll be doing a talk on actors at CodeMash in January.
The other big area that lots of folks are exploring is Software Transactional Memory (STM). Clojure uses an STM and seems like lots of folks are exploring it right now as a technique.
Hope those are some good points to start!