Вопросы к Поиску с Алисой
Использование pthread_cancel() может быть нежелательным по нескольким причинам:
Вместо использования pthread_cancel() рекомендуется, когда это возможно, иметь общий флаг, который используется потоками для выхода из цикла. stackoverflow.com Так можно позволить потокам выполнить любую очистку, которая им может потребоваться, перед фактическим завершением. stackoverflow.com
Также при использовании pthread_cancel() в языке C++ есть риск падения программы, если не поймать исключение в определённой точке (cancellation point). bagrintsev.me