Synchronization Primitive Semantics¶
Synchronization primitives (mutex, semaphore, monitor, condition variable) encode different coordination patterns. A mutex provides exclusive access; a semaphore counts concurrent users; a monitor bundles mutex with condition waiting; a read-write lock distinguishes reader and writer access. Choosing the right primitive expresses intent and enables appropriate concurrency.
Tension Addressed¶
Simplicity vs. Scalability
Recognizable As¶
Mutex when one-at-a-time access needed; semaphore when limiting concurrent access to N; monitor when threads must wait for conditions; read-write lock when reads vastly outnumber writes and don't conflict with each other.
Canonical Sources¶
Dijkstra, "The Structure of the 'THE' Multiprogramming System" (1968) on semaphores; Hoare, "Monitors: An Operating System Structuring Concept" (1974)
Transfers To¶
Connection pooling (semaphore semantics), database locks, file system access controls