Espacios de nombres
Variantes
Acciones

std::jthread::detach

De cppreference.com
< cpp‎ | thread‎ | jthread
 
 
Biblioteca de apoyo de concurrencia
Hilos
(C++11)
(C++20)
Espacio de nombres this_thread
(C++11)
(C++11)
(C++11)
Cancelación cooperativa
Exclusión mutua
(C++11)
Gestión genérica de bloqueo
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Variables de condición
(C++11)
Semáforos
Pestillos y barreras
(C++20)
(C++20)
Futuros
(C++11)
(C++11)
(C++11)
(C++11)
Recuperación segura
(C++26)
Punteros de riesgo
Tipos atómicos
(C++11)
(C++20)
Inicialización de tipos atómicos
(C++11)(en desuso en C++20)
(C++11)(en desuso en C++20)
Orden de memoria
Funciones independientes para operaciones atómicas
Funciones independientes para indicadores atómicos
 
 
void detach();
(desde C++20)

Separa el hilo de ejecución del objeto jthread, lo que permite que la ejecución continúe de forma independiente. Todos los recursos asignados se liberarán una vez que el hilo termine.

Después de llamar a detach *this ya no posee ningún hilo.

Contenido

[editar] Parámetros

(Ninguno)

[editar] Return value

(Ninguno)

[editar] Poscondiciones

joinable es false.

[editar] Excepciones

std::system_error si joinable() == false u ocurre un error.

[editar] Ejemplo

#include <iostream>
#include <chrono>
#include <thread>
 
void independentThread() 
{
    std::cout << "Iniciando hilo simultáneo.\n";
    std::this_thread::sleep_for(std::chrono::seconds(2));
    std::cout << "Egresando del hilo simultáneo.\n";
}
 
void threadCaller() 
{
    std::cout << "Iniciando llamador del hilo.\n";
    std::jthread t(independentThread);
    t.detach();
    std::this_thread::sleep_for(std::chrono::seconds(1));
    std::cout << "Egresando del llamador del hilo.\n";
}
 
int main() 
{
    threadCaller();
    std::this_thread::sleep_for(std::chrono::seconds(5));
}

Posible salida:

Iniciando llamador del hilo.
Iniciando hilo simultáneo.
Egresando del llamador del hilo.
Egresando del hilo simultáneo.

[editar] Referencias

  • El estándar C++20 (ISO/IEC 14882:2020):
  • 32.4.3.2 Members [thread.jthread.mem]

[editar] Véase también

Espera a que el hilo termine su ejecución
(función miembro pública de std::thread) [editar]
Comprueba si el objeto representa a un hilo actualmente en ejecución o a la espera de recibir un join()
(función miembro pública de std::thread) [editar]
Documentación de C para thrd_detach