java多线程 CPU占用率100%问题 - Java / Java SE
Java code:
main函数中:
TerminalProcess tp = new TerminalProcess();
for(int i = 0; i < proThreadNum; i++){
Thread t = new Thread(tp, "tp" + i);
t.start();
}
TerminalProcess类:
public class TerminalProcess extends Thread{
public void run(){
while(true){
processData();
}
}
}
如何使用while(true){....},就会造成线程阻塞起来,CPU占用率达到100%,如果使用sleep或者wait,好像不是最理想的方法,有没有更好的办法?请大家指点一下!
没有!这都死循环了,估计 processData 中也没有阻塞的时候,CPU 100% 是很正常的,因为 CPU 在高强度地进行计算。
都不知道这程序在干嘛,是干嘛用的。
while(TRUE)
while(true)
一般多线程run方法中用while(true),就要用到wait()和notifyAll()方法,wait()可以实现线程阻塞。
适当加上sleep
while(true)不是问题,以前在pushlet框架(comet)中看到过这样的语句,就是消息订阅之类的是吧。那得如楼上所说,wait()方法控制下线程,在需要的时候才notify。把processData()方法贴出来看看吧
可以用w
相关问答:
本人正在用Java做一个C/S架构的项目,
可是由于项目比较大,前期对架构的设计尤其重要,因为后期可能随时会加个功能或者去掉某些功能。
所以特地寻求如何设计C/S的架构使程序更加面向对象更加易于维 ......
为什么HTML以及一些其它标签会显示一些特定表现形式呢?如HTML中的换行标签<BR/>在底层是怎样实现的呢?现实的原理是什么呢
去W3C官方网站上,看看吧!我想一看你就明白了
我猜和编译原理有关,浏览器里可 ......
JSP中要从数据库里面读取数据 每页显示5条数据,要进行翻页,还要返回前一页 该怎么实现啊
用的什么数据库呢???
MYSQL
....谢谢 我先看看代码
http://my.donews.com/benz/2006/10/21/YnmQXKsKWNgKiTJ ......
因公司业务发展,现招聘java开发工程师2人
有JAVA项目开发经验
对分派的任务能够独立进行开发
熟悉2种以上数据库
对计算机网络有一定了解
学历不限
学习能力强
能够承受工作压力
工作地点:北京
请发简历致 ......