Из темы Отладка ошибки многопоточности
Назовите мне хоть одну реальную причину, по которой имеет смысл использовать в проекте на C++ POSIX threads вместо std::thread / boost::thread.
Пока я вижу только две:
- Запрет использования C++11 / C++14 / C++17 (старый компилятор, требование компании etc)
- Старый проект, в котором уже написаны свои обёртки над POSIX thread'ами
Кто ещё в здравом уме будет скатываться до API системы, когда в языке есть более высокоуровневое средство для решения той же задачи? Это всё равно, что советовать для проектов под Windows использовать CreateThread / _beginthread / _beginthreadex вместо всё тех же std / boost.
Баги? На какие лично вы натыкались?
Производительность? Обычно проблемы производительности, связанные с синхронизацией потоков, вызваны хреновой архитектурой, а вовсе не тем, что используется std::mutex вместо pthread_mutex_t.