站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题多线程下CPU占有率的问题

多线程下CPU占有率的问题

摘要: 多线程下CPU占有率的问题


一个网络通信的程序,接收到一条命令,就新建一个线程给与命令回应,(命令的执行时间很短,但是同时有大量的命令)为了保证实时性,所以每一条命令用一个线程来处理.系统已经完成,但是经过测试当有几百条命令同时处理时,建立几百个线程,线程的建立和释放就是一个很占用系统资源的问题,CPU居高不下(100%),想做一个线程池的方法,可以使线程资源的重复利用,请问大家有什么实现方面的建设性的意见,谢谢


典型的PRODUCT-CUSTOMER模式,建立一个PRODUCT线程类,N个CUTOMER线程类,以及一个CHANNEL管道类,PRODUCT负责接受命令,并塞到CHANNEL管道队列里去等待执行,并通知N个CUTOMER类开始工作。N个CUTSTOMER类接受到通知后,竞争去取CHANNEL管道队列中的命令执行,N的设置依据PRODUCT类的存放速度决定。存的快,为了取的也快,就多建点CUTOMER,存的实在太快,N个CUSTOMER没有一个空闲了,只能等谁有空了。当然存的慢了,造成空闲的CUSTOMER线程无事可做。自己平衡吧。

给分。


java.util.concurrent包,这里有线程池的解决办法


看到这题,忽然想问下,多线程学习有哪些号资料?谢谢


学习


你可以考虑NIO,一个线程服务几百个连接


二楼的方法,我还没有试,不知道实现上有没有问题,不过思想上是OK的,JAVA 1.5的包中那个java.util.concurrent,我没有看,我对里面的东西不熟悉,以后好好学习一下


↑返回目录
前一篇: 怎么在指定文件目录下获得指定文件???
后一篇: 关于JSP中错误页面跳转的问题