- Mutual exclusion. [...]
- Mutual exclusion that supports read and write locks. [...]
- A Semaphore class.
- A WaitGroup waits for a collection of processes to finish. The main process calls add to set the number of processes to wait for. Then each of the processes runs and calls done when finished. At the same time, wait can be used to block until all processes have finished.