Joining and detaching a thread
After a thread is spawned, it starts executing as a new task, separate from the main thread. However, there may be situations in which we want the task to rejoin the main thread. This is possible. We may also want that the thread always stays apart from the main thread. That is also possible. However, there are a few precautions that we must take when attaching to and detaching from the main thread.
Getting ready
You need to have a working Windows machine and Visual Studio.
How to do it…
In this recipe we will see how easy it is to join and detach threads. Add a source file called Source.cpp
. Add the following code to it:
int ThreadOne() { std::cout << "I am thread 1" << std::endl; return 0; } int ThreadTwo() { std::cout << "I am thread 2" << std::endl; return 0; } int main() { std::thread T1(ThreadOne); std::thread T2(ThreadTwo); if (T1.joinable()) // Check if can be joined to the main thread T1.join(); // Main thread...