Just some quick note here today as I dig into the Java 5 concurrency classes and utilities. Mostly, I just wanted to save a few good links I've found related to Java concurrency and multi-core programming:
- First, there's the Java concurrency tutorial.
- Next, the Java concurrency API notes.
- Here's a link to a collection of Java concurrency source code examples on the Java Concurrency in Practice website.
- Doug Lea's Concurrency Property Checklist is also a good link once you have the basics down.
- Understanding the Java memory model can also be extremely helpful.
- A JavaWorld article on Java client multicore processing is also good.
I started down this road a few days ago as I was researching how Java applications can take advantage of multi-core processors, including Intel's Intel's multi-core processor technology. That interest was probably sparked by seeing Apple's new Mac Pro computer that sports up to twelve processor cores. Twelve processor cores sound awesome, but unless you can write code to take advantage of them, I'm not sure exactly what they do to make any one application faster.
If you haven't taken the time in the last few years to check out the Java 5 Concurrency API, it's an interesting read, and quite a bit different than the original Java threading API. Of particular interest to me is the work of a man named Doug Lea. I remember reading his "Concurrent Programming in Java" book many years ago, and being very impressed by it. Amazingly, that book now costs more than $58 on Amazon(!).
In summary, if you're interested in using multi-core processor programming with Java, it will help to learn about the new Java Concurrency API.