(by Brian Goetz)

Chapter 1: Introduction

Chapter 2: Thread Safety

2.1: What is thread safety?
2.2: Atomicity
2.3: Locking
2.4: Guarding state with locks
2.5: Liveness and performance

Chapter 3: Sharing Objects

3.1: Visibility
3.2: Publication and escape
3.3: Thread confinement
3.4: Immutability
3.5: Safe publication

Chapter 4: Composing Objects

4.1: Designing a thread-safe class
4.2: Instance confinement
4.3: Delegating thread safety
4.4: Adding functionality to existing thread-safe classes
4.5: Documenting synchronization policies

Chapter 10: Avoiding Liveness Hazards

10.1: Deadlock
10.2: Avoiding and diagnosing deadlocks
10.3: Other liveness hazards

Chapter 11: Performance and Scalability

11.1: Thinking about performance
11.2: Amdahl's law
11.3: Costs introduced by threads
11.4: Reducing lock contention


Tags: reading   jvm   vm  

Last modified 03 May 2022