3.1 MULTI-THREADED HELLO WORLD3.2 THREAD MANAGEMENT3.3 DATA SHARING3.4 THREAD LOCAL STORAGE3.5 FALSE SHARING3.6 RACE CONDITIONS AND DATA RACES3.7 LOCKS3.8 SPINLOCKS3.9 DEADLOCKS3.10 RAII LOCKS3.11 LOCK-FREE CONCURRENT DESIGN3.12 INTRODUCTION TO CONCURRENT DATA STRUCTURES3.13 CONDITION VARIABLES3.14 ADVANCED SYNCHRONIZATION3.15 LAZY INITIALIZATION3.16 ATOMIC TYPES3.17 TASK MANAGEMENT3.18 THREAD POOLS3.19 USING THE THREAD POOL3.20 DEBUGGING AND OPTIMIZING PARALLEL PROGRAMSNOTES