Comparing the usability of library vs. language approaches to task parallelism
Java Concurrency in Practice