The Art of Multiprocessor Programming / Edition 1

Paperback (Print)
Rent from
(Save 75%)
Est. Return Date: 07/21/2015
Buy New
Buy New from
Buy Used
Buy Used from
(Save 37%)
Item is in good condition but packaging may have signs of shelf wear/aging or torn packaging.
Condition: Used – Good details
Used and New from Other Sellers
Used and New from Other Sellers
from $24.99
Usually ships in 1-2 business days
(Save 68%)
Other sellers (Paperback)
  • All (15) from $24.99   
  • New (4) from $77.98   
  • Used (11) from $24.99   


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.

  • The book on multicore programming, the new paradigm of computer science
  • Written by the world's most revered experts in multiprocessor programming and performance
  • Includes examples, models, exercises, PowerPoint slides, and sample Java programs
Read More Show Less

Product Details

  • ISBN-13: 9780123705914
  • Publisher: Elsevier Science
  • Publication date: 3/14/2008
  • Edition description: New Edition
  • Edition number: 1
  • Pages: 528
  • Product dimensions: 1.07 (w) x 7.50 (h) x 9.25 (d)

Meet the Author

Maurice Herlihy received an A.B. in Mathematics from Harvard University, and a Ph.D. in Computer Science from M.I.T. He has served on the faculty of Carnegie Mellon University, on the staff of DEC Cambridge Research Lab, and is currently a Professor in the Computer Science Department at Brown University. Maurice Herlihy is an ACM Fellow, and is the recipient of the 2003 Dijkstra Prize in Distributed Computing. He shared the 2004 Gödel Prize with Nir Shavit, the highest award in theoretical computer science. In 2012 he shared the Edsger W. Dijkstra Prize In Distributed Computing with Nir Shavit.

Nir Shavit received a B.A. and M.Sc. from the Technion and a Ph.D. from the Hebrew University, all in Computer Science. From 1999 to 2011 he served as a member of technical staff at Sun Labs and Oracle Labs. He shared the 2004 Gödel Prize with Maurice Herlihy, the highest award in theoretical computer science. He is a Professor in the Electrical Engineering and Computer Science Department at M.I.T. and the Computer Science Department at Tel-Aviv University. In 2012 he shared the Edsger W. Dijkstra Prize In Distributed Computing with Maurice Herlihy.

Read More Show Less

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 Sychronization; 9 Linked Lists: the Role of Locking; 10 Concurrent Queues and the ABA Problem; 11 Concurrent Stakcs and Elimination; 12 Counting, Sorting and Distributed Coordinatino; 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; Appendices

Read More Show Less

Customer Reviews

Average Rating 4.5
( 2 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 2 Customer Reviews
  • Posted September 6, 2009

    Practical Theory

    The Art of Multiprocessor Programming is a foundation textbook for a large subject with both theory and practical considerations. It is not a programmer's guide or an application cookbook. Instead it addresses the fundamental problem of concurrent execution within a single program with a shared data space. Then it develops real techniques and explores the issues as they apply to real instruction sets and practical memory architectures of real machines. It introduces and illustrates the fundamental issues, and teaches the student how to think about the problem. Note "student", not "reader." This is not a book to read; it is a book to do. There is a fair amount of theory to gain experience with. The problem sets, while not large, are well chosen. The program illustrations are in Java, and have mistakes whose corrections can be found in online errata.

    The Art of Multiprocessor Programming will not help you get code past a compiler or pass an exam on Pthreads. But it may help you avoid hard-to-find bugs, and to avoid costly bottlenecks in concurrent programs.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted April 20, 2009

    A great book that teachers theory

    Most books out there will give you a bunch of coding, and break it down for you, showing you how it works; I consider most of these part of the "how-to" category.

    This book, on the other hand, is unique in that it actually teaches the concepts that are used in multi-processor (concurrent/parallel) programming, which is different than multi-threaded programming. It is not a reference book which teaches you what kind of coding to put in your programs to enable parallel programming (of which such an endeavor is close to impossible with such a highly complex subject matter as this), but it will teach you what parallel programming means and how one would go about creating programs that can use multiple streams of processing to collectively work on a single task.

    While you'd be hard-pressed to find any sort of working excerpt of code in this book; it does a great job explaining how parallel programming works through the use of clever analogies and light, unburdened pseudo-coding.

    I don't recommend this book for anyone who is interested in a "quick learn" kind of environment. This book is meant for one to deeply understand the underlying subject and spend ample time thinking through and mentally reasoning through the exercises.

    The subject level of this book would most likely be collegiate level, but do not fear, for the mathematics in this book are not overly complex. A foreknowledge of multi-threading does help, but is not required.

    Lastly, I have not seen a book like this in my entire career of computer science. What this book offers, no other book will offer. The knowledge within contains decades of collective experience from brilliant minds in the field of computing.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing all of 2 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)