首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

关于java在linux上消耗cpu的有关问题

2012-08-21 
关于java在linux下消耗cpu的问题。最近在做的一个java的后台服务器,在window下测试对cpu占用率极小,但是迁

关于java在linux下消耗cpu的问题。
最近在做的一个java的后台服务器,在window下测试对cpu占用率极小,但是迁移到linux下去导致linux下的cpu占用率极高;



通过努力分析,终于在不起眼的地方发现问题所在:


public class BidCheck { public static void main(String[] args) throws Exception{        ////定时器,1秒后开始执行,每隔180秒再执行Timer timer = new Timer();timer.schedule(new java.util.TimerTask() { public void run() { Run r = new Run();    Thread t = new Thread(r);      t.start(); } }, 1000, 180000);//while(true){//)这个是用来停止此任务的,否则就一直循环执行此任务了//try{//int ch = System.in.read();//if(ch-'c'==0){//timer.cancel();//使用这个方法退出任务//}//}catch (IOException e) {//e.printStackTrace();//}//}}}



就是这段代码导致问题,这段代码的目的是在用户输入了一个字符q的时候,终止后台运行,当把这段代码注释后,在此部署到linux系统,系统的cpu的占用率就下来了。



在分析,这段代码没有什么特殊的地方,我们只要关注这句话:read = System.in.read();

看来 System.in.read方法在linux和windows下面实现的效果是不同的。



建议大家在linux系统下面关注  System.in.read() 适当使用,防止导致linux负荷过高。

热点排行