- 🧠 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
- 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