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

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

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

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

...全文
186 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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的机子吧

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧