Корпоративный кейс
Если вы пишете программное обеспечение для предприятия, которое должно работать на умеренных или больших операционных системах и, следовательно, собирать их с различными версиями компиляторов (особенно относительно старых) для этих операционных систем, я предлагаю пока держитесь подальше от C ++ 11. Это означает, что вы не можете использовать std::thread
, и я бы рекомендовал использовать boost::thread
.
Базовый / Технический случай запуска
Если вы пишете для одной или двух операционных систем, вы точно знаете, что вам когда-либо понадобится строить только с помощью современного компилятора, который в основном поддерживает C ++ 11 (например, VS2015, GCC 5.3, Xcode 7), и вы еще не зависят от библиотеки повышения, тогда std::thread
может быть хорошим вариантом.
Мой опыт
Я лично неравнодушен к закаленным, интенсивно используемым, высокосовместимым, высокосогласованным библиотекам, таким как boost по сравнению с очень современной альтернативой. Это особенно верно для сложных предметов программирования, таких как многопоточность. Кроме того, я уже давно добился большого успеха с boost::thread
(и boost в целом) в широком спектре сред, компиляторов, потоковых моделей и т. Д. Когда это мой выбор, я выбираю boost.