我应该更喜欢std :: thread还是Boost线程?

时间:2012-09-11 07:56:16

标签: c++ multithreading boost

我是C ++(来自C#)的新手,正在编写一个多线程C ++应用程序并想知道什么是更好用的:std::thread或它的Boost对应物?

我在另一个Stack Overflow帖子中看到了following discussion,但仍然没有全面了解我为什么要选择其中一个。如果没有启动新程序,我应该使用标准库还是Boost线程?

谢谢!

3 个答案:

答案 0 :(得分:17)

如果您尚未在项目中使用boost,则没有理由使用boost :: thread来支持std :: thread。这是除非你使用STL中没有提供的某些功能。 std :: thread适用于大多数用例,除非提供令人信服的参数,否则编写标准代码总是更可取。

如果您已经在项目中使用了boost,请检查boost :: thread是否提供了与std :: thread相比更多的东西。

答案 1 :(得分:3)

请记住,Boost.Thread是一个可移植的库,可以编译各种各样的平台/编译器 - 包括std :: thread不可用的那些。

答案 2 :(得分:0)

这取决于你的习惯和偏好。 通过boost,您可以使用一整套库,使您的生活更轻松,但是需要在编译程序的系统上安装它们,而使用std线程只需要一个cpp编译器。