thread::hardware_concurrency()检查返回零值
thread::hardware_concurrency() checking returns zero value
我使用的是RHEL 6 64位,在四核处理器上的虚拟机上运行。我编写了以下程序来检查硬件可以处理的线程数。
#include <thread>
#include <iostream>
using namespace std;
int main()
{
cout << thread::hardware_concurrency() << endl;
return 0;
}
结果总是为零,是什么原因导致这样的结果?
来自cppreference:
返回实施该值应仅被视为一个提示。
以及:
返回值
支持的并发线程数。如果值不正确已定义或不可计算,返回0.
所以thread::hardware_concurrency()
不必给你任何准确的信息
"准确"也在旁观者眼中。如果我有两个支持超线程的核心,hardware_concurrency
应该返回2
还是4
?
相关文章:
- 检查函数返回类型是否与STL容器类型值相同
- 对于等待以 std::future wait() 返回的函数的 CPU 使用率或检查标志在循环中休眠一段时间哪个更好?
- 如何检查 log2 'inbuilt c++ function'是否返回 '-inf'?
- cpp 检查抱怨危险使用 c_str(). c_str() 返回的值在本次调用后无效,如何解决?
- 如何检查 range:: 算法(如 find_if)是否返回了值?
- 字符串检查总是返回假的Palidrome
- 检查 std::string.c_str() 的返回值
- 如何检查 CNG Windows API 是否返回符合 FIPS 的算法实现
- 如何检查从 C++ 中的函数返回的空数组
- 如何获取有关 Visual Studio 代码分析中未经检查的函数返回值的警告
- c++ 一遍又一遍地对函数返回相同的检查
- 返回其参数或检查 nullptr 的函数
- 检查成员函数是否返回临时对象或数组对象
- 类返回对象类型,但如何返回和检查 null
- 如何避免使用多个if-else来检查返回值是否为错误代码?
- thread::hardware_concurrency()检查返回零值
- 检查返回的 std::function 是否在 C++11 中"valid"
- 如何使用 cppunit 断言宏来检查返回数据类型的预处理器值
- 检查返回值是整数还是字符
- 算术运算符(+)运算符将检查返回类型和传递参数是否