Espacios de nombres
Variantes
Acciones

std::jthread::join

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
Gestión genérica de bloqueo
(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)
Recuperación segura
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 join();
(desde C++20)

Bloquea el hilo actual hasta que el hilo identificado por *this termine su ejecución.

La finalización del hilo identificado por *thisse sincroniza con el retorno exitoso correspondiente de join().

No se realiza ninguna sincronización en *this en sí. Al mismo tiempo, llamar a join() en el mismo objeto jthread desde múltiples hilos/subprocesos constituye una carrera de datos que da como resultado un comportamiento indefinido.

Contenido

[editar]Parámetros

(Ninguno)

[editar]Valor de retorno

(Ninguno)

[editar]Poscondiciones

joinable() es false

[editar]Excepciones

std::system_error si ocurre un error.

[editar]Condiciones de error

[editar]Ejemplo

#include <iostream>#include <thread>#include <chrono>   void foo(){// simular una operación costosastd::this_thread::sleep_for(std::chrono::seconds(1));}   void bar(){// simular una operación costosastd::this_thread::sleep_for(std::chrono::seconds(1));}   int main(){std::cout<<"iniciando el primer auxiliar...\n";std::jthread helper1(foo);   std::cout<<"iniciando el segundo auxiliar...\n";std::jthread helper2(bar);   std::cout<<"esperando a que terminen los auxiliares..."<<std::endl; helper1.join(); helper2.join();   std::cout<<"listo!\n";}

Salida:

iniciando el primer auxiliar... iniciando el segundo auxiliar... esperando a que terminen los auxiliares... listo!

[editar]Referencias

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

[editar]Véase también

Permite que el hilo se ejecute independientemente del identificador del hilo
(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_join
close