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