Threads <thread>
Threads are the basic building blocks to be able to write code that runs in parallel.
Launching a New Thread
To run any function pointer, functor, or lambda expression
in a new thread of execution, pass it to the constructor of std::thread, along with any number of arguments. For example, these two lines are equivalent:
std::thread worker1(function, "arg", anotherArg);
std::thread worker2([=] { function("arg", anotherArg); });
The function with its arguments is called in a newly launched thread of execution ...