Concurrency

The classes and functions in this group make it possible to write multi-threaded programs. Access to shared resources can be serialized by various types of mutexes, semaphores and condition variables. The most lightweight synchronization primitives are atomic integers. The framework allows to start threads, which can be either joinable or detached.