在實際的項目中,尤其是服務器端,需要多線程來處理業務,我們除了可以在配置文件中配置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 ;
}