怎样提高多线程的处理速度

stkzl 2005-03-10 07:31:02
我有800个下载线程 需要在一分种内完成
方法一:
把这800个下载任务分到两个程序里 各跑400各 速度可以节省一半
在同一个程序里 把这800和线程分到两个主线程里 两个主线程同时执行
方法二:
mainThead1()
{
subThead1N(400个任务)
}
mainThead2()
{
subThead2N(400个任务)
}
下载时间和用一个主线程控制是一样的
方法三:
mainThead()
{
SubTheadN(800)
}

是不是线程的数目太多 超出的程序的调度能力
所以导致在同一个程序里方法二和方法三的效率一样?

在同一个程序里如何能达到方法一的效率或者更高的效率

...全文
130 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
phineco 2005-03-10
楼上的正解
回复
oyljerry 2005-03-10
对于单个CPU来说,多线程有时并不比单线程的速度快,而且一般都要效率低些,因为增加线程之间的切换和调度等
多线程主要是用来进行多任务处理,增加后台处理的能力

可以考虑用多CPU来实现楼主的要求
回复
truewill 2005-03-10
-_-

多线程所花的时间绝对比单线程的慢

多线程的好处并不是提高运行速度
回复
sanhill 2005-03-10
对于一个cpu的机器来说
800个线程不管怎么搞,它们的速度都是很慢的
而且效果都会差不多的。

不知道为什么会要用到800个线程!
晕。。。
回复
youki1234 2005-03-10
换个双cpu的机子吧
回复
相关推荐
发帖
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2005-03-10 07:31
社区公告
暂无公告