Вступить в клуб →
лёгкаявопросМногопоточность и синхронизация

std::thread уничтожен без join и detach

void start_batch() {
    std::thread t(process_batch);
    // ни join(), ни detach() не вызваны
}

Что произойдёт при выходе из start_batch?

  • Поток тихо продолжит работу в фоне, как после `detach`
  • Деструктор дождётся завершения потока — это неявный `join`
  • Программа аварийно завершится: деструктор присоединяемого потока вызывает `std::terminate`
  • Поток будет принудительно остановлен, его стек корректно размотается, а захваченные им ресурсы освободятся

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела