关于java在linux下消耗cpu的问题。

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

 

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

 

//  new Thread() {
//   public void run() {
//    try {
//     int read;
//     System.out.println("输入字符 ‘q’ ,程序终止!");
//     while (true) {
//      read = System.in.read();
//      if (read == 'q') {
//       System.exit(0);
//      }
//     }
//    } catch (IOException e) {
//     e.printStackTrace();
//    }
//   }
//  }.start();

 

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

 

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

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

 

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值