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
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. Dr. Herlihy is an ACM Fellow, and is the recipient of the 2003 Dijkstra Prize in Distributed Computing. He shared the 2004 Goedel Prize with Nir Shavit, with whom he also shared the 2012 Edsger W. Dijkstra Prize In Distributed Computing. 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 Goedel Prize with Maurice Herlihy, with whom he also shared the 2012 Edsger W. Dijkstra Prize in Distributed Computing. 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.