什么是 std::thread::hardware_concurrency 返回?

Posted

技术标签:

【中文标题】什么是 std::thread::hardware_concurrency 返回?【英文标题】:What is std::thread::hardware_concurrency returns? 【发布时间】:2020-03-20 12:14:12 【问题描述】:

我在阅读 C++ Concurrency in Action 时正在尝试使用我的 mach 笔记本电脑,第一个示例是使用 std::thread::hardware_concurrency() 识别实际硬件线程的数量,它在我的机器上返回 8。 但是在打印std::thread::hardware_concurrency()之前,我已经做了一个类型并打印了std::thread::hardware_concurrency,即00B61410

那么std::thread::hardware_concurrency() and std::thread::hardware_concurrency 有什么区别呢?后面的标识是什么?

【问题讨论】:

你是如何打印std::thread::hardware_concurrency的? std::thread::hardware_concurrency 是一个函数,所以只有它的返回值才有意义。 std::cout 【参考方案1】:

std::thread::hardware_concurrency()std::thread的静态成员函数

返回实现支持的并发线程数。该值应仅被视为一个提示。

所以你得到的8 是你的“最大并发线程数”。

当你这样做时

std::cout << std::thread::hardware_concurrency << std::endl;

您正在打印函数的地址。你得到的值基本上是没有意义的,除非你想把那个函数指针传递给别的东西。

【讨论】:

以上是关于什么是 std::thread::hardware_concurrency 返回?的主要内容,如果未能解决你的问题,请参考以下文章