table of contents
std::thread::detach(3) | C++ Standard Libary | std::thread::detach(3) |
NAME¶
std::thread::detach - std::thread::detach
Synopsis¶
void detach(); (since C++11)
Separates the thread of execution from the thread object, allowing execution
to
continue independently. Any allocated resources will be freed once the thread
exits.
After calling detach *this no longer owns any thread.
Parameters¶
(none)
Return value¶
(none)
Postconditions¶
joinable is false
Exceptions¶
std::system_error if joinable() == false or an error occurs.
Example¶
// Run this code
#include <iostream>
#include <chrono>
#include <thread>
void independentThread()
{
std::cout << "Starting concurrent thread.\n";
std::this_thread::sleep_for(std::chrono::seconds(2));
std::cout << "Exiting concurrent thread.\n";
}
void threadCaller()
{
std::cout << "Starting thread caller.\n";
std::thread t(independentThread);
t.detach();
std::this_thread::sleep_for(std::chrono::seconds(1));
std::cout << "Exiting thread caller.\n";
}
int main()
{
threadCaller();
std::this_thread::sleep_for(std::chrono::seconds(5));
}
Possible output:¶
Starting thread caller.
Starting concurrent thread.
Exiting thread caller.
Exiting concurrent thread.
References¶
* C++20 standard (ISO/IEC 14882:2020):
* 32.4.2.5 Members [thread.thread.member]
* C++17 standard (ISO/IEC 14882:2017):
* 33.3.2.5 thread members [thread.thread.member]
* C++14 standard (ISO/IEC 14882:2014):
* 30.3.1.5 thread members [thread.thread.member]
* C++11 standard (ISO/IEC 14882:2011):
* 30.3.1.5 thread members [thread.thread.member]
See also¶
join waits for the thread to finish its execution
(public member function)
checks whether the thread is joinable, i.e. potentially running in parallel
joinable context
(public member function)
2022.07.31 | http://cppreference.com |