什么是 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 返回?的主要内容,如果未能解决你的问题,请参考以下文章