◐ Shell
clean mode source ↗

std::thread::joinable - cppreference.com

De cppreference.com

bool joinable() const noexcept;

(desde C++11)

Comprueba si el objeto std::thread identifica un hilo de ejecución activo. Específicamente, devuelve true si get_id() != std::thread::id(). Por lo tanto, un std::thread construido por defecto no es unible.

Un hilo que ha terminado de ejecutar código, pero aún no se ha unido, se considera un hilo de ejecución activo y, por lo tanto, es unible.

Parámetros

(Ninguno)

Valor de retorno

true si el objeto std::thread identifica un hilo de ejecución activo; de lo contrario, false.

Ejemplo

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

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

int main()
{
    std::thread t;
    std::cout << "antes de iniciar, unible: " << std::boolalpha << t.joinable()
              << '\n';

    t = std::thread(foo);
    std::cout << "después de iniciar, unible: " << t.joinable() 
              << '\n';

    t.join();
    std::cout << "después de unirse, unible: " << t.joinable() 
              << '\n';
}

Salida:

antes de iniciar, unible: false
después de iniciar: true
después de unirse, unible: false

Referencias

  • El estándar C++20 (ISO/IEC 14882:2020):
  • 32.4.2.5 Miembros [thread.thread.member]
  • El estándar C++17 (ISO/IEC 14882:2017):
  • 33.3.2.5 thread members [thread.thread.member]
  • El estándar C++14 (ISO/IEC 14882:2014):
  • 30.3.1.5 thread members [thread.thread.member]
  • El estándar C++11 (ISO/IEC 14882:2011):
  • 30.3.1.5 thread members [thread.thread.member]

Véase también

Devuelve el id del hilo
(función miembro pública) [editar]
Espera a que el hilo termine su ejecución
(función miembro pública) [editar]
Permite que el hilo se ejecute independientemente del identificador del hilo
(función miembro pública) [editar]