+ -
当前位置:首页 → 问答吧 → 使用线程能不能降低CPU占用率?

使用线程能不能降低CPU占用率?

时间:2011-12-06

来源:互联网

比如我有一个函数

First()
{
for(int i = 0; i < 5; i++)
 //do something 这里占用CPU很高;
}

现在我把for里面的do something放到一个线程里面;
First()
{
for(int i = 0; i < 5; i++)
 //创建一个线程do something ;这里样做了会使CPU 占用率降低吗?
}

这样有没有什么作用呢?我发现好像没啥作用。

作者: wesleyluo   发布时间: 2011-12-06

当然了,Work总是要CPU分时间片去干的,线程的意义不是加速,而是不让某个线程单干或者阻塞。

作者: healer_kx   发布时间: 2011-12-06

for(int i = 0; i < 5; i++)
{
 //do something 这里占用CPU很高;
Sleep(500);
}

作者: dahuaixiaohuai   发布时间: 2011-12-06

个人理解是:
多线程不能降低CPU占用率
如果你的CPU是多核心的话 可以提高你的CPU利用率 加快运算速度
同时把工作和界面线程分开可以用来防止长时间运算造成界面显示迟缓。

作者: caozl   发布时间: 2011-12-06

线程通常在下面这几个场合下有作用:

overlapping IO

Asynchronous

Realtime scheduling

看一下你的情况符合这三条不,然后就知道有没有效果了

作者: fetag   发布时间: 2011-12-06