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.
![Multithreading in C++11 and C++14](https://static.packt-cdn.com/products/9781839211027/graphics/Images/timeline----timeline11_14.png)