The Art of Multiprocessor Programming, Revised Reprint


  • Maurice Herlihy, Brown University, Providence, RI, USA
  • Nir Shavit, Professor of Computer Science, Massachusetts Institute of Technology, Cambridge, MA

Revised and updated with improvements conceived in parallel programming courses, The Art of Multiprocessor Programming is an authoritative guide to multicore programming. It introduces a higher level set of software development skills than that needed for efficient single-core programming. This book provides comprehensive coverage of the new principles, algorithms, and tools necessary for effective multiprocessor programming. Students and professionals alike will benefit from thorough coverage of key multiprocessor programming issues.
View full description


Students in multiprocessor and multicore programming courses and engineers working with multiprocessor and multicore systems.


Book information

  • Published: May 2012
  • ISBN: 978-0-12-397337-5


"The book could be used for a short course for practitioners looking for solutions to particular problems, a medium course for non-computer science major who would use multiprocessor programming in their own field, or a semester-long course for computer science majors."--Reference and Research Book News, February 2013

Table of Contents

1. Introduction

2. Mutual Exclusion

3. Concurrent Objects and Linearization

4. Foundations of Shared Memory

5. The Relative Power of Synchronization Methods

6. The Universality of Consensus

7. Spin Locks and Contention

8. Monitors and Blocking Synchronization

9. Linked Lists: the Role of Locking

10. Concurrent Queues and the ABA Problem

11. Concurrent Stacks and Elimination

12. Counting, Sorting and Distributed Coordination

13. Concurrent Hashing and Natural Parallelism

14. Skiplists and Balanced Search

15. Priority Queues

16. Futures, Scheduling and Work Distribution

17. Barriers

18. Transactional Memory