This practice-based course builds on concepts from Java Concurrency Foundations, with real-life tasks focused on synchronization, lock-free programming, deadlock prevention, and inter-thread communication. Each unit presents practical scenarios that challenge you to solve concurrency issues and reinforce your understanding.
Overview
Syllabus
- Unit 1: Simulating and Solving Deadlocks in the Dining Philosophers Problem
- Running the Dining Philosophers Simulation
- Track Philosopher Meal Count
- Alter Fork-Picking Strategy
- Fix the Fork Ordering
- Parking Lot Coordination Challenge
- Unit 2: Implementing a Thread-Safe Bank Account Transfer System
- Running the Thread-Safe Transfers
- Reverse the Locking Order
- Fix the Deadlock in Transfers
- Implement Reversible Bank Transfers
- Thread-Safe Data Transfers
- Unit 3: Simulating a Traffic Signal Controller with Deadlock Prevention
- Run the Traffic Simulation Code
- Expand Traffic Simulation with New Route
- Fix the Traffic Control Simulation
- Managing Lanes in a Busy Supermarket
- Unit 4: Producer-Consumer Problem with Locks and Synchronization
- Execute Producer-Consumer Synchronization
- Introducing Multiple Threads in Concurrency
- Fix Deadlock in Producer-Consumer Synchronization
- Build Your Own Producer-Consumer Model
- Unit 5: Creating a Lock-Free Queue Using Atomic Variables
- Running Your First Lock-Free Queue
- Change Queue Capacity
- Adding a Peek Method
- Implement a Lock-Free Stack