21.1 The Multicore Future 21.2 Basic Threads 21.2.1 Problems with Threads 21.2.1.1 Race Conditions 21.2.1.2 Deadlock 21.2.2 Synchronization 21.2.3 Wait/Notify 21.2.4 Other Thread Methods 21.3 Concurrency Library 21.3.1 Executors and Executor Services 21.3.2 Callable and Futures 21.3.3 Parallel Data Structures 21.3.3.1 Shared Barriers 21.3.3.2 The Exchange 21.3.3.3 Assembly Line 21.3.3.4 Ticketed Passengers 21.3.3.5 Other Threadsafe Types 21.3.4 Atomic (java.util.concurrent.atomic) 21.3.5 Locks (java.util.concurrent.locks) 21.4 Parallel Collections 21.5 Introduction to Scala Actors 21.6 Multithreaded Mandelbrot (Project Integration) 21.7 Multithreading in GUIs 21.8 Animated Bouncing Balls (Project Integration) |