The Life of a Programmer

CPU Memory – Why do I need a mutex?

Multi-threaded programming calls for semaphores, synchronized blocks, mutexes, or whatever your language happens to call them. Most of us basically understand why we need them: