多线程下CPU占有率的问题

YUPING322 2006-11-06 11:42:19
一个网络通信的程序,接收到一条命令,就新建一个线程给与命令回应,(命令的执行时间很短,但是同时有大量的命令)为了保证实时性,所以每一条命令用一个线程来处理.系统已经完成,但是经过测试当有几百条命令同时处理时,建立几百个线程,线程的建立和释放就是一个很占用系统资源的问题,CPU居高不下(100%),想做一个线程池的方法,可以使线程资源的重复利用,请问大家有什么实现方面的建设性的意见,谢谢
...全文
231 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pastom 2006-11-07
  • 打赏
  • 举报
回复
看到这题,忽然想问下,多线程学习有哪些号资料?谢谢
廖雪峰 2006-11-07
  • 打赏
  • 举报
回复
你可以考虑NIO,一个线程服务几百个连接
SaintKaKa 2006-11-07
  • 打赏
  • 举报
回复
学习
YUPING322 2006-11-07
  • 打赏
  • 举报
回复
二楼的方法,我还没有试,不知道实现上有没有问题,不过思想上是OK的,JAVA 1.5的包中那个java.util.concurrent,我没有看,我对里面的东西不熟悉,以后好好学习一下
千里冰封820 2006-11-06
  • 打赏
  • 举报
回复
java.util.concurrent包,这里有线程池的解决办法
ghosert 2006-11-06
  • 打赏
  • 举报
回复
典型的PRODUCT-CUSTOMER模式,建立一个PRODUCT线程类,N个CUTOMER线程类,以及一个CHANNEL管道类,PRODUCT负责接受命令,并塞到CHANNEL管道队列里去等待执行,并通知N个CUTOMER类开始工作。N个CUTSTOMER类接受到通知后,竞争去取CHANNEL管道队列中的命令执行,N的设置依据PRODUCT类的存放速度决定。存的快,为了取的也快,就多建点CUTOMER,存的实在太快,N个CUSTOMER没有一个空闲了,只能等谁有空了。当然存的慢了,造成空闲的CUSTOMER线程无事可做。自己平衡吧。

给分。

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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