喜欢研究学习技术,喜欢和志同道合的人交流。
从事测试6年,专职性能3年经验,擅长性能测试,测试框架开发。
励志格言:只要想学习,永远都不会太晚;只要想进步,永远都会有空间。
使用Jvisualvm监控线程死锁案例分析
上一篇 /
下一篇 2018-06-20 10:32:43
/ 个人分类:性能测试
开发工具:Eclipse 监控工具:jvisualvm应用服务器:tomcat 7.8 在做性能测试过程中,一般都会对应用程序进行一些监控,看应用程序在高并发的过程中是否正常运行。今天这里简单介绍一个多线程死锁的监控整个过程案例。
1、首先看下两段多线程的代码。(特地编写的异常代码,存在线程死锁)。
2、将以上两段代码打成JSP页面。
4、运行tomcat发布刚才的项目,并且使用LoadRunner的control进行并发压测。同时打开jvisualvm.exe对tomcat进行线程监控。
5、监控过程中出现了线程死锁的报错,进行了【线程dump】操作,查看报错异常,可以清晰看到具体代码的报错位置。
6、报错代码在com.thread2包下的DeadLockThread2类的第10行代码。将此报错反馈给开发人员over。
异常代码分析:两个线程的方法,分别持有了对方的锁,并且嵌套持有,导致双发无法释放锁,CPU无法获取到执行权限,无法执行线 程中的代码。
收藏
举报
TAG: