问题本身的描述非常简单。我正在测试C++11中std::thread库和boost::thread库之间的差异。
它们的输出分别是:
#include <iostream>
#include <thread>
#include <boost/thread.hpp>
int main() {
std::cout << std::thread::hardware_concurrency() << std::endl;
std::cout << boost::thread::hardware_concurrency() << std::endl;
return 0;
}
给我不同的结果:
0
4
为什么会这样呢?PS:gcc软件包的版本是4.6.2-1.fc16(x86_64)。我正在使用。
g++ test.cc -Wall -std=c++0x -lboost_thread-mt -lpthread
linux-x86_64
,还是...? - Brian Cain0
是可接受的后备值,而gcc 4.6.x利用了这一点。GCC 4.7中的C++11支持更好,它确实为std::thread::hardware_concurrency()
提供了准确的值。 - snogglethorpe