Какая типичная ошибка при работе с std::thread и как ее избежать?
Что хотят услышать интервьюеры:
Частая ошибка: думать, что mutex решает все, игнорировать data races, memory ordering, spurious wakeups и lifetime потоков.
Ответ:
Как избежать: явно определить контракт: кто владеет объектом, кто освобождает ресурс, что происходит при ошибке, какие инварианты должны сохраняться.
На собеседовании: полезно назвать симптом — segfault, leak, UB, data race, deadlock, ABI break или деградация производительности.
std::thread t([]{
work();
}
);
t.join();