|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Observers | ||||
jthread::joinable | ||||
| Operations | ||||
| Stop token handling | ||||
| Non-member functions | ||||
bool joinable()constnoexcept; | (since C++20) | |
Checks if thestd::jthread object identifies an active thread of execution. Specifically, returnstrue ifget_id()!= std::jthread::id(). So a default constructedjthread is not joinable.
A thread that has finished executing code, but has not yet been joined is still considered an active thread of execution and is therefore joinable.
Contents |
(none)
true if thestd::jthread object identifies an active thread of execution,false otherwise.
#include <chrono>#include <iostream>#include <thread>usingnamespace std::chrono_literals; void foo(){std::this_thread::sleep_for(500ms);} int main(){std::cout<<std::boolalpha; std::jthread t;std::cout<<"before starting, joinable: "<< t.joinable()<<'\n'; t=std::jthread{foo};std::cout<<"after starting, joinable: "<< t.joinable()<<'\n'; t.join();std::cout<<"after joining, joinable: "<< t.joinable()<<'\n'; t=std::jthread{foo}; t.detach();std::cout<<"after detaching, joinable: "<< t.joinable()<<'\n'; }
Output:
before starting, joinable: falseafter starting, joinable: trueafter joining, joinable: falseafter detaching, joinable: false
| returns theid of the thread (public member function)[edit] | |
| waits for the thread to finish its execution (public member function)[edit] | |
| permits the thread to execute independently from the thread handle (public member function)[edit] |