C++ · Intermediário · Inglês · Técnico
std thread
Classe da biblioteca padrão que cria e representa uma thread de execução, iniciada na construção com uma função chamável. Deve receber join ou detach antes de ser destruída.
Onde usar
Usada para paralelizar tarefas em C++ sem depender de APIs do sistema. Um std::thread destruído ainda associado a uma thread chama terminate, erro frequente em review.
Em código
void tarefa(int id) { std::cout << id; }
std::thread t(tarefa, 1);
std::thread u([] { std::cout << 2; });
t.join();
u.join(); // espera terminarExemplos
Join the thread before the object goes out of scope.
Faça join da thread antes de o objeto sair de escopo.
The program crashed because the std thread was never joined.
O programa caiu porque o std thread nunca recebeu join.
Cuidado
Não esqueça join ou detach; e os argumentos são copiados para a thread, então use std::ref para passar uma referência.
Sinônimos
thread