std::jthread::detach
De cppreference.com
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
Ejecuta este código
#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 )
| |
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 )
| |
Documentación de C para thrd_detach
|