Описание тега semaphore
A semaphore keeps an internal count and provides two operations: one to increment the counter and another to decrement it.
The decrement operation, known as p, acquire, or wait, puts one resource in use by the current thread, decrementing the counter. If there are no resources available, i.e., the counter is zero, the calling thread blocks until a resource becomes available.
The increment operation, known as v, release, or signal, gives one resource away for use by other threads.
Wikipedia entry: http://en.wikipedia.org/wiki/Semaphore_%28programming%29
Language Specific Semaphore Implementations
C# http://msdn.microsoft.com/en-us/library/system.threading.semaphore.aspx
Java http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Semaphore.html
See also: mutex