在实际的项目中,尤其是服务器端,需要多线程来处理业务,我们除了可以在配置文件中配置thread number,还可以根据系统CPU 数目来确定甚至是分配线程数。
int GetProcessorNum()
{
FILE *fstream=NULL;
char buff[1024];
memset(buff,0,sizeof(buff));
if (NULL == (fstream = popen("grep 'processor' /proc/cpuinfo | sort -u | wc -l", "r")))
{
return -1;
}
fgets(buff, sizeof(buff), fstream);
int kProcessorNum = atoi(buff);
pclose(fstream);
printf("GetProcessorNum = [%d].\n", kProcessorNum);
return kProcessorNum ;
}
本文介绍了一个通过读取系统信息来获取CPU核心数量的C语言函数。该函数使用popen调用命令行工具,从/proc/cpuinfo文件中筛选出processor条目,并通过去除重复项后计数来得出CPU核心的数量。
7766

被折叠的 条评论
为什么被折叠?



