Mô tả về vấn đề chính nó là khá đơn giản. Tôi đang thử nghiệm sự khác biệt của std :: thread thư viện trong C + + 11 và tăng :: thư viện thread.Tại sao có một sự khác biệt bằng cách sử dụng std :: thread :: hardware_concurrency() và tăng :: thread :: hardware_concurrency()?
Kết quả của những:
#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;
}
mang lại cho tôi kết quả khác nhau:
0
4
Tại sao vậy?
PS: Phiên bản của gói gcc là 4.6.2-1.fc16 (x86_64). Tôi đang sử dụng
g++ test.cc -Wall -std=c++0x -lboost_thread-mt -lpthread
Nhưng thực sự tăng :: luồng có thể hiển thị thông tin chính xác 4, trong khi C++ 11 cho tôi 0 ... – derekhh
@derekhh: rất có khả năng triển khai C++ 11 của bạn chỉ là một bộ xương và không thực sự làm việc – Dani
@Dani: Tôi đã sử dụng g ++ 4.6.2 ... – derekhh