请教运行多线程,cpu100%的问题

soullover 2004-06-18 09:00:22
我开了7个线程,做同样的工作,每一秒做一定的运算并将结果从网络发送出去,
此时cpu100%,且线程已无法保证实时性(即每秒进行运算并发送结果),很急,不知各位高手有什么好方法,请赐教!
...全文
374 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdzwq 2004-07-11
  • 打赏
  • 举报
回复
1。不单单是sleep的问题。
2。线程的创建要量CPU的数量而行,一颗CPU,创建再多的线程也是白搭。
3。密集型线程,要用线程池来管理。
w203w 2004-07-11
  • 打赏
  • 举报
回复
主线程不要用循环等待,利用WaitFor..Object这些方法等待啊
huang_yu 2004-07-10
  • 打赏
  • 举报
回复
在最后sleep(0),放弃当前CPU时间,等待下一次的资源分配,也许你的程序就不会CPU使用100%了。
hxzb7215191 2004-07-10
  • 打赏
  • 举报
回复
你没有sleep
yanw0212 2004-07-10
  • 打赏
  • 举报
回复
你的线程进入了死循环,一直在占用cpu,可以在你的线程的死循环里Sleep(10)一下,
max_xy 2004-07-10
  • 打赏
  • 举报
回复 1
呵呵,我认为,如果你有while的话,没有办法避免。
PiggyXP 2004-07-10
  • 打赏
  • 举报
回复
我想还是线程同步没有做好,如果计算量不是超大的话

楼主可以加上sleep(0)试试看一下
xiao165 2004-07-10
  • 打赏
  • 举报
回复
sleep(10)会降速啊!
会思考的草 2004-06-29
  • 打赏
  • 举报
回复
从算法效率上下手吧。7个线程够呛。
jiadrun 2004-06-29
  • 打赏
  • 举报
回复
线程同步
yst_killed 2004-06-29
  • 打赏
  • 举报
回复
最简单的方法 sleep(10)一下 CPU立即变成 10%以下
danielzhu 2004-06-29
  • 打赏
  • 举报
回复
线程同步吧!
MuseIn 2004-06-29
  • 打赏
  • 举报
回复
觉得是线程协调问题
carbon107 2004-06-29
  • 打赏
  • 举报
回复
只能优化代码,如果你把延迟长一些,还会出现那些问题吗
sharkhuang 2004-06-20
  • 打赏
  • 举报
回复
肯定是程序死循环.
dylwx 2004-06-19
  • 打赏
  • 举报
回复
你的线程做了很多工作?
主线程是死循环?
enoloo 2004-06-19
  • 打赏
  • 举报
回复
发送完之后Sleep(0);

要不就是程序本身的问题。不好猜测。
zhucde 2004-06-18
  • 打赏
  • 举报
回复
7个线程都在做一定的运算,
必然要耗掉大量系统资源,
算一下你的CPU的计算量,100%很正常.

能做的就是优化代码,优化算法
xianfeihong 2004-06-18
  • 打赏
  • 举报
回复
请问运算完后有没有用
waitforsingleobject 进行线程同步?或者是线程死锁了。
zoid 2004-06-18
  • 打赏
  • 举报
回复
线程循环中加入sleep(xxx);让出一部分cpu时间给其它线程,
否则其它线程无法得到cpu时间片而正常运行

15,471

社区成员

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

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