Chapter 7 - Concurrency 📜 Contents 📜 🧠 7.1 Introducing Threads 🧠 7.2 Creating Threads with the ExecutorService 🧠 7.3 Synchronizing Data Access 🧠 7.4 Using Concurrent Collections 🧠 7.5 Working with Parallel Streams 🧠 7.6 Managing Concurrent Processes 🧠 7.7 Identifying Thread Problems 📝Revision Notes ✅ Review Questions 🎯 Exam Objectives 🎯 Create worker threads using Runnable, Callable,, and use an ExecutorService to concurrently execute tasks. Identify potential threading problems among deadlock, starvation, livelock and race conditions Use synchronized keyword and java.util.concurrent.atomic package to control the order of thread execution Use java.util.concurrent collections and classes including CyclicBarrier and CopyOnWriteArrayList Use parallel Fork/Join Framework Use parallel Streams including reduction, decomposition, merging processes, pipelines, and performance