A classic semaphore synchronization primitive.
A semaphore manages an internal counter which is decremented by each
acquire()call and incremented by each
release()call. The counter can never go below zero; when
acquire()finds that it is zero, it blocks, waiting until some other thread calls
__init__(initial_count: int) → None¶
acquire() → None¶
Decrements the internal count. If the count was already at zero, blocks until the count is nonzero, then decrements it.
tryAcquire() → bool¶
If the semaphore can be acquired without blocking, does so and returns true. Otherwise, returns false.
release() → int¶
Increments the semaphore’s internal count. This may wake up another thread blocked on
Returns the count of the semaphore upon release.
getCount() → int¶
Returns the current semaphore count. Note that this call is not thread- safe (the count may change at any time).
output(out: ostream) → None¶