Multithreading
C++ has a multithreading interface since C++11 and this interface has all the basic building blocks for creating multithreaded programs. These are threads, synchronisation primitives for shared data such as mutexes and locks, thread-local data, synchronisation mechanism for threads such as condition variables, and tasks. Tasks usually called promises and futures, provide a higher abstraction than native threads.