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