单线程与多核

在自己没有动手测试之前,一直以为一个单线程程序在多核处理器中只会在一个内核中运算。然而经过测试,其结果与我之前的理解并不一致,以下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中的运算速度进行测试比较,有兴趣的朋友可以自己测试,有测试结果也可以告诉小的哈,如有大神路过,感觉我这里的理解还是不准确的请留步指导哈,不胜万分感激!





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值