The Art of Multiprocessor Programming
As the computer industry changes from single-processor to multiprocessor architectures, this revolution requires a fundamental change in how programs are written. To leverage the performance and power of multiprocessor programming, also known as multicore programming, you need to learn the new principles, algorithms, and tools presented in this book. It includes fully-developed Java examples detailing data structures, synchronization techniques, transactional memory, and more.
Prof. Maurice Herlihy, who coined the phrase "transactional memory," is on the faculty of Brown University. He is the recipient of the 2003 Dijkstra Prize in distributed computing. Prof. Nir Shavit is on the faculty of Tel-Aviv University and a member of the technical staff at Sun Microsystems Laboratories. In 2004 they shared the Gödel Prize, the highest award in theoretical computer science.
What people are saying - Write a review
JCiP on steroids and with a CS degree.
JCiP was more like a sophisticated user's guide to the j.u.c. package API. AoMP explains the algorithms it is based on and how contemporary CPU architectures influence real-life performance.
Doug Lea himself refers to it in the ForkJoinWorkerThread class.
There is a chapter on STM but not a word on Actors.
This title is a good introduction to concurrency with regard to theory. The overall narrative and individual examples are ultimately Java-centric; most concepts are introduced via Java code examples that try to implement parallel and/or distributed algorithms and architectures within the framework of the Java Concurrency packages. This is not a particularly detailed or rigorous text as the authors rely too much on hand-waving arguments to justify their statements. Asymptotic notation and inductive proofs thereof are absent. Low-level hardware details are contained only in an appendix, seemingly as an afterthought.