案例:

public class App
{
public static void main( String[] args )
{
int a = 0;
while (a < 100) {
a *= 10;
}
}
}

把上述代码放到项目中,打成jar包,然后丢到服务器上,使用java -jar xxx.jar命令运行jar包;

使用 top -c  查看cpu情况:

使用 top -Hp 126018 查看一个进程的线程运行信息列表,可按下P,进程按照cpu使用率排序

上图pid是十进制的数据,需要将其转为十六进制,使用命令 printf '%x' 126019 输出 :1ec43

[appdeploy@CNSZ22VL3901:/home/appdeploy]$printf '%x' 126019
1ec43

 

使用命令将进程快照导出:

jstack -l 126018 > ./126018.stack

然后使用less命令查看线程1ec43干了什么:

"main" #1 prio=5 os_prio=0 tid=0x00007f9eac008800 nid=0x1ec43 runnable [0x00007f9eb294a000]
java.lang.Thread.State: RUNNABLE
at com.sf.App.main(App.java:13) Locked ownable synchronizers:
- None "VM Thread" os_prio=0 tid=0x00007f9eac0f9000 nid=0x1ec46 runnable "GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007f9eac01d800 nid=0x1ec44 runnable "GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007f9eac01f800 nid=0x1ec45 runnable "VM Periodic Task Thread" os_prio=0 tid=0x00007f9eac155000 nid=0x1ec4d waiting on condition JNI global references: 9

从上面日志可以看出该线程存在死锁《Locked ownable synchronizers》,具体代码:com.sf.App.main(App.java:13)

执行过程中遇到的如下问题:

no main manifest attribute, in demo-1.0.jar

最新文章

  1. 高性能javascript学习笔记系列(5) -快速响应的用户界面和编程实践
  2. SqlServer删除表中重复记录
  3. 【mysql】压缩myisam数据表
  4. Ubuntu/CentOS使用BIND配置DNS服务器
  5. 数据结构复习:直接插入排序与二分插入排序的C++实现
  6. [转] 三步将你的 React Native 项目运行在 Web 浏览器上面
  7. JS 查找遍历子节点元素
  8. 微信JS图片上传与下载功能--微信JS系列文章(三)
  9. 在JBoss AS7中进行项目部署
  10. spring-mvc List及数组的配置接收
  11. express整合webpack的打包文件dist
  12. 在Intellij idea 2017中运行tomcat 8.5
  13. 使用python实现人脸检测
  14. 运维监控利器Nagios之:nagios配置详解
  15. Abp.vNext 权限备注
  16. pytest框架之fixture详细使用
  17. Flask 系列之 FlaskForm
  18. Intelij U
  19. linux:scp从入门到刚入门
  20. Java 工程名上有个红色叹号

热门文章

  1. 《大规模 web服务开发》笔记
  2. 掉坑日志:Windows Native API与DPI缩放
  3. RestSharp使用备忘
  4. 03_4_this关键字
  5. cocos2d-x中的字符串操作
  6. 利用SignalR实现实时聊天
  7. cesium 基于天地图服务 完成底图标注渲染加切换
  8. kali下安装中文输入法
  9. 无法重启ssh
  10. 17.Yii2.0框架模型添加记录