永发信息网

java cpu占用高,该怎么处理

答案:2  悬赏:20  手机版
解决时间 2021-01-26 15:12
  • 提问者网友:留有余香
  • 2021-01-25 19:30
java cpu占用高,该怎么处理
最佳答案
  • 五星知识达人网友:孤独入客枕
  • 2021-01-25 19:36
你是自己编写的程序吗?如果是请自查代码
CPU占用过高,一般是因为你线程启动太多或者其中一个或多个线程工作太忙

工作太忙的例子,最简单的,代码太长,执行需要一段时间,CPU就会升高,可以适当地加上sleep(milliseconds)来使其睡眠一小会。
还有就是线程有的时候必须要时刻监听一个值,这个时候简单粗暴的方式就是while(true),然后里面判断一个boolean是否为真,如果是则break,如果不是则继续循环
这样的代码是【非常】【非常】吃CPU的,还是避免它比较好,或者至少加入sleep(1)来让其休息一下,1已经很小了。。

线程太多的话,我们的CPU本来是很闲的,尤其是电脑闲置的时候,基本上是不会干活的,只会监听一下硬件设备,以及自动保存一下未保存的文档等等,它的时间片安排的特别宽松,也就不会出现占用过高的问题,结果假设你的程序给它安排了几十个线程等着执行……
因为CPU可不是给一个单独的线程一堆时间,直到这个线程结束再给下一个线程。
CPU会把自己的时间片资源分配给随机的线程,执行时间结束后强制暂停线程,优先级高的能获得更多处理时间,但不保证必然能得到全部时间。
如果线程太多了,那么sleep方法就没什么用了,因为本来是让线程休息的,结果这个休息了那个立马就开始,所以用处不大了
全部回答
  • 1楼网友:逃夭
  • 2021-01-25 20:46
1. 假设你是编程人员,检查代码里面有没有大量循环操作,或者将用线程来处理消耗时间较长的代码块。 2. 假设你是使用者,升级java版本可以有效减缓问题,如果已经是最新版了,那最大的可能性是性能问题或是软件本身问题。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯