ConcurrenCpp — The C++ concurrency library
concurrencpp allows applications to write asynchronous code easily and safely by using executors and coroutines.
By using concurrencpp applications can break down big procedures that need to be processed asynchronously into smaller tasks that run concurrently and work in a co-operative manner to achieve the wanted result.
concurrencpp also allows applications to write parallel algorithms more easily by using parallel coroutines.
concurrencpp main advantages are:
- Being able to write non-blocking, asynchronous code easily by using the C++20 coroutines and the
co_await
keyword. - Being able to write modern concurrent code without having to rely on low-level concurrency primitives like locks and condition variables.
- The concurrency runtime manages all low-level resources such as threads automatically.
- Reducing the possibility of race conditions, data races and deadlocks by using high-level objects with built-in synchronization.
- concurrencpp provides various types of commonly used executors with a complete coroutine integration.
- Applications can extend the library by using their own provided executors.
- Applications automatically scale-up to use all hardware processors (cores).