A synchronization primitive that controls access to a resource by maintaining a count of available permits, allowing multiple threads to access the resource up to a specified limit. Unlike a mutex, semaphores can allow controlled concurrent access.
From Greek 'sema' (sign) and 'phoros' (bearing), originally referring to visual signaling systems. Computer scientist Edsger Dijkstra adapted the term in 1965 for computing, as semaphores 'signal' the availability of resources to waiting processes.
Try Another Word