单线程与多核

来源:互联网 发布:java dos 运行命令 编辑:程序博客网 时间:2024/05/16 21:58

在自己没有动手测试之前,一直以为一个单线程程序在多核处理器中只会在一个内核中运算。然而经过测试,其结果与我之前的理解并不一致,以下po出我的测试过程与结果。仅作为学习笔记,如遇大神,求指导讲解。

首先写个死循环如下:

while(1)
{

}

执行、打开任务管理器、点击性能、点击资源监视器如下图:

这里我们的测试程序名为:Thread.exe,线程数显示为1,cpu 参数为25(即使用率占25%),平均CPU为4个cpu的平均使用率。



在这里可以看到,4个cpu使用率都是25%,这说明,这个单线程程序是在4个cpu之间轮流运算的。

然而,将这个测试程序指定其中一个cpu进行运算如下:打开任务管理器,找到测试进程,右键设置相关性,选择其中一个cpu。




此时,可以看到在我们设置的CPU 0  的使用率为100%。

总结:对于一个单线程程序在多核处理器中的运算来说,在未指定该程序在指定的cpu上运算时,该单线程程序是在4个(四核)cpu中轮着运算的。从这里可以看出,我之前对于一个单线程程序在多核处理器中只会在其中一个cpu上运算的理解是不准确的。这里没有对一个单线程程序在4个cpu中 的运算速度与在一个cpu中的运算速度进行测试比较,有兴趣的朋友可以自己测试,有测试结果也可以告诉小的哈,如有大神路过,感觉我这里的理解还是不准确的请留步指导哈,不胜万分感激!





1 0
原创粉丝点击