Должен ли я использовать std:: thread или Boost threads?
Я новичок в С++ (из С#), пишу многопоточное приложение на С++ и задаюсь вопросом, что лучше использовать: std::thread
или его коллега Boost?
Я видел следующее обсуждение в другой статье "Переполнение стека", но до сих пор не имеет полной картины того, почему я должен выбирать один из них. Если не запускать новую программу, следует ли использовать стандартную библиотеку или увеличить потоки?
Спасибо!
Ответы
Ответ 1
Если вы еще не используете boost в своем проекте, нет причин использовать boost:: thread в пользу std:: thread. То есть, если вы не используете какую-либо функцию из boost, недоступной в STL. std:: thread подходит для большинства случаев использования, и если не представлены убедительные аргументы, желательно всегда писать стандартный код.
Если вы уже используете boost в своем проекте, проверьте, добавляет ли boost:: thread ничего лишнего по сравнению с std:: thread.
Ответ 2
Имейте в виду, что Boost.Thread является переносной библиотекой и компилируется в широком диапазоне платформ/компиляторов, включая те, где std:: thread недоступен.
Ответ 3
Это действительно зависит от ваших привычек и предпочтений.
С boost у вас есть целый набор библиотек, которые облегчают вашу жизнь, но их нужно будет установить в системе, в которую скомпилирована ваша программа, в то время как с потоками std все, что вам нужно, это компилятор cpp.