Namespaces
Variants

std::thread::joinable

From cppreference.com
Revision as of 03:23, 14 April 2013 by Korval (talk | contribs) (Just making that point clear.)
 
 
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
(C++11)
Generic lock management
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Safe Reclamation
(C++26)
Hazard Pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11)(deprecated in C++20)
(C++11)(deprecated in C++20)
Memory ordering
(C++11)(deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
 
 
bool joinable();
(since C++11)

Checks if the thread object identifies an active thread of execution. Specifically, returns true if get_id() != std::thread::id(). So a default constructed thread is not joinable.

Parameters

(none)

Return value

true if the thread object identifies an active thread of execution, false otherwise

Exceptions

noexcept specification:  
noexcept
  

Example

#include <iostream>
#include <thread>
#include <chrono>

void foo()
{
    std::this_thread::sleep_for(std::chrono::seconds(1));
}

int main()
{
    std::thread t;
    std::cout << "before starting, joinable: " << t.joinable() << '\n';

    t = std::thread(foo);
    std::cout << "after starting, joinable: " << t.joinable() << '\n';

    t.join();
}

Output:

before starting, joinable: 0
after starting, joinable: 1

See also

returns the id of the thread
(public member function of std::{{{1}}}) [edit]
waits for the thread to finish its execution
(public member function of std::{{{1}}}) [edit]
permits the thread to execute independently from the thread handle
(public member function of std::{{{1}}}) [edit]