文档章节

关于while(true)导致CPU过高

艳沐石
 艳沐石
发布于 2014/09/15 19:07
字数 444
阅读 101
收藏 0

前一段时间在配置Dubbo的时候,从网上找到的例子,代码中通过main函数将环境启动,并且通过while(true)让程序保持,即不关闭。当我有两个服务项目同时启动的时候,我的电脑已经卡的不能动了(8G内存,2核CPU)。

当时同事提示我,是while的问题,我还一脸迷惑。后来,老大告诉,Dubbo的启动,可以用他提供的Main类来启动,看了一下它的程序,在启动完成后,他执行了一个wait()方法。

业余时间,我通过设置了个sleep方法,发现我启动的Dubbo,CPU利用率也不高了。不明原因。于是,从网上查询信息,发现涉及到操作系统的知识,不禁悔恨当初没有好好学习。具体如下:

当切换到别的进程时,别的进程告诉系统自己没什么事情要做,不需要那么多的时间,这个时候系统就会切换到下一个进程,直到回到这个死循环的进程上,而这个进程无论什么时候都再循环,所以一直会报告有事情要做,系统就会把尽可能多的时间分给他。实际上是这个死循环任务用光了别的进程节省下来的时间。
(摘自:http://blog.sina.com.cn/s/blog_74a459380102uwcb.html)


© 著作权归作者所有

艳沐石
粉丝 3
博文 44
码字总数 24301
作品 0
大兴
程序员
私信 提问
jvm原理和优化

在上文中我们分析了很多性能监控工具,介绍这些工具的目的只有一个,那就是找出对应的性能瓶颈。盲目的性能调优是没有效果的,只有充分知道了哪里出了问题,针对性的结果才是立竿见影的。解决...

罗文浩
2016/09/09
53
0
一个快速检测系统CPU负载的小程序

原理说明 在对服务器进行维护时,有时也遇到由于系统 CPU(利用率)负载过高导致业务中断的情况。服务器上可能运行多个进程,查看单个进程的 CPU 都是正常的,但是整个系统的 CPU 负载可能是...

Linux就该这么学
2018/12/26
0
0
java程序CPU消耗分析之找出最耗CPU线程

java程序CPU消耗过高一般有两种情况: 1、us过高,应用占用CPU资源过高,需找出具体占用CPU的线程所执行的代码,分析定位问题原因。 分析步骤如下: (1) 使用top命令找出占用cpu最高的JAVA进...

天天顺利
2015/09/24
678
0
关于JVM CPU资源占用过高的问题排查

一、背景: 先执行一个java程序里面开了两个线程分别都在while循环做打印操作。 # java -cp ./test-threads.jar com.spiro.Main 二、现象: 通过top命令查看当前CPU情况 可以看到有个java进程...

囚兔
2015/10/21
4.5K
1
RDS for MySQL CPU 性能问题分析

RDS for MySQL CPU 性能问题分析 1. 原因 2. 释疑 3. 后记 RDS for MySQL CPU 使用率高是使用 RDS for MySQL 实例过程中比较常见的一类性能问题。 由于实例 CPU 资源打满会直接导致业务受损,...

田杰
05/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

中国地理位置四至点及计算方法

中国地理位置四至点(China's geographical position is four o'clock),是指中国领土最东、西、南、北的四个地理位置。处于太平洋西岸,亚洲东部。 中文名 中国地理位置四至点 外文名 Chin...

boonya
13分钟前
0
0
8.eclipse 安装 lombook插件

1.效果 2.安装过程 参考: https://blog.csdn.net/zflovecf/article/details/80178679 2.1 下载插件 https://projectlombok.org/download.html 并放入eclipse所在目录 (位置参考下图) 2.2 ......

20190513
14分钟前
0
0
java io的编码和解码

public class copyFIle { public static void main(String[] args) throws UnsupportedEncodingException { String str="中国人民";//编码byte data[]=str.getBytes("gbk");//解码Sys......

南桥北木
28分钟前
0
0
SpringBoot中使用Filter

1.在传统web项目中添加filter <filter> <filter-name>TestFilter</filter-name> <!--定义filter名称 和filter类 --> <filter-class>com.jiafeng.filter.TestFilter</filter-class>......

贾峰uk
29分钟前
1
0
?为什么要学这个技术(有什么优秀的地方,可以解决哪些问题?

今天来总结一下Struts2的知识点,学习编程我的思路一般是这样的:     ① why ?为什么要学这个技术(有什么优秀的地方,可以解决哪些问题?)。     ②what ? 这个技术是什么玩意?有...

SEOwhywhy
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部