C++11多线程: hardware_concurrency()函数

hardware_concurrency():是thread类下的一个公共静态函数,用于获取当前机器的CPU逻辑核心数,并可根据此值来设置线程池的工作线程数量。

代码如下:

//C++11多线程: hardware_concurrency()函数
#include 
#include 
int main(int argc, char *argv[])
{
	unsigned const thread_count = std::thread::hardware_concurrency(); //unsigned 表示的就是 unsigned int
	printf("thread_count=%d\n",thread_count);
	return 0;
}

编译器为:minGW:gcc-13.2.0版本下的执行结果:
C++11多线程: hardware_concurrency()函数_第1张图片
C++11多线程: hardware_concurrency()函数_第2张图片
可以看到 程序打印输出的逻辑cpu个数和实际机器上的逻辑cpu个数是相等的。

单核cpu:不能实现真正意义上的线程并行,虽然可以通过中断机制实现在单核cpu上,通过分配cpu时间片的方式使多个线程
进行交替执行,但是同一时刻还是只有一个线程在执行,不能达到真正意义上的线程并行。
多核cpu:能够实现真正意义上的线程并行。
线程并行:指的是同一时刻,有多个线程同时在不同的cpu核心上进行指令的执行。
线程的最大并行数:就是cpu的逻辑核心数。

你可能感兴趣的:(C,and,C++的笔记,c++,开发语言)