我在阅读C++并发在行动时正在试验我的 mach 笔记本电脑,第一个示例是使用std::thread::hardware_concurrency()
识别实际硬件线程的数量,在我的机器上返回 8。
但是在打印std::thread::hardware_concurrency()
之前,我已经制作了一个类型并打印了00B61410
std::thread::hardware_concurrency
。
那么std::thread::hardware_concurrency() and std::thread::hardware_concurrency
有什么区别呢?后者识别了什么?
std::thread::hardware_concurrency()
是std::thread
的静态成员函数,其中
返回实现支持的并发线程数。该值应仅被视为一个提示。
因此,您得到8
是"最大连接线程"。
当你这样做时
std::cout << std::thread::hardware_concurrency << std::endl;
您正在打印函数的地址。 你得到的值基本上是没有意义的,除非你想把那个函数指针传递给其他东西。