Synchronization mechanism for controlling access to critical resources by cooperating asynchronous threads. See also semaphore