Ниже приводится:
void test()
{
std::chrono::seconds dura( 20 );
std::this_thread::sleep_for( dura );
}
int main()
{
std::thread th1(test);
std::chrono::seconds dura( 5 );
std::this_thread::sleep_for( dura );
return 0;
}
main выйдет через 5 секунд, что произойдет с th1, который все еще выполняется?
Продолжается ли выполнение до завершения, даже если объект потока th1, который вы определили в main, выходит из области действия и уничтожается?
Может ли th1 сидеть там после того, как он закончил выполнение или каким-то образом очистится, когда программа завершится?
Что делать, если поток был создан в функции, а не main - работает ли поток до тех пор, пока программа не завершится или когда функция выходит из области видимости?
Можно ли просто не называть join для потока, если вы хотите, чтобы какой-то тип тайм-аута в потоке?