Descrição
Ele retorna quando a execução do thread é concluída.
Declaração
A seguir está a declaração para a função std :: thread :: join.
void join();
C ++ 11
void join();
Parâmetros
Nenhum
Valor de retorno
Nenhum
Exceções
No-throw guarantee - nunca lança exceções.
Corridas de dados
O objeto é acessado.
Exemplo
No exemplo abaixo para std :: thread :: join.
#include <iostream>
#include <thread>
#include <chrono>
void foo() {
std::this_thread::sleep_for(std::chrono::seconds(1));
}
void bar() {
std::this_thread::sleep_for(std::chrono::seconds(1));
}
int main() {
std::cout << "starting helper...\n";
std::thread helper1(foo);
std::cout << "starting another helper...\n";
std::thread helper2(bar);
std::cout << "waiting for helpers to finish..." << std::endl;
helper1.join();
helper2.join();
std::cout << "done!\n";
}
A saída deve ser assim -
starting helper...
starting another helper...
waiting for helpers to finish...
done!