Visualizing locks, semaphores, and barriers. Essential for handling thread safety in multi-threaded environments.
Mutual Exclusion. Only one thread can hold the resource at a time. Others must wait.
Controls access to a shared resource through a counter. Allows N threads to enter.
Thread repeatedly checks if lock is available (busy waiting). Efficient for very short waits.
Multiple readers can access simultaneously, but writers require exclusive access.
Allows threads to sleep until a specific condition is met (Wait/Notify pattern).