а как создать поток, который будет запущен и потом просто сам завершится? при этом параллельно будет выполняться основной поток
Так нельзя делать
если просто хочется запустить асинхронно несколько функций, которые должны просто где-то отработать, в стандартной библиотеке есть удобная функция - std::async(std::launch::async, …). В крупных проектах ее использование скорее не рекомендуется (потому что там обычно заводят свои потоки и управляют ими как нужно), но для экспериментов и небольших утилит штука очень удобная. возвращает std::future.
Возвращает, как сказано, std::future, который в своём деструкторе ожидает завершения задачи, если только он связан с соответствующим шареным состоянием Это следует иметь в виду
Обсуждают сегодня