Skip to content

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