ontents Preface . . . . . . . . . . . . . xi 1. The Power and Perils of Concurrency . . . . . . 1 1.1 Threads: The Flow of Execution 1 1.2 The Power of Concurrency 2 1.3 The Perils of Concurrency 5 1.4 Recap 10 Part I — Strategies for Concurrency 2. Division of Labor . . . . . . . . . . . 15 2.1 Fro