Skip to content

Semaphore

A semaphore uses permits to bound how many operations may use a resource concurrently.

flowchart LR J[Junior: permits] --> M[Middle: pools and cancellation] --> S[Senior: fairness and overload] --> P[Professional: resource governance]
flowchart LR Jobs --> Permit{3 permits} --> API[Limited API] API --> Release[Release permit]
Level Guide You are done when
Junior Start You can bound concurrent work.
Middle Apply You can avoid permit leaks.
Senior Operate You can handle fairness and overload.
Professional Design You can govern resources across workloads.

Practice rule: Acquire immediately before use and release exactly once in guaranteed cleanup.

Mutex | Condition variables