使用Jvisualvm监控线程死锁案例分析
来源:互联网 发布:日本军国主义知乎 编辑:程序博客网 时间:2024/05/22 04:27
开发工具:Eclipse
监控工具:jvisualvm
应用服务器:tomcat 7.8
在做性能测试过程中,一般都会对应用程序进行一些监控,看应用程序在高并发的过程中是否正常运行。今天这里简单介绍一个多线程死锁的监控整个过程案例。
1、首先看下两段多线程的代码。(特地编写的异常代码,存在线程死锁)。
3、使用tomcat对刚才打的jsp页面进行发布,然后使用LoadRunner进行并发访问。
4、运行tomcat发布刚才的项目,并且使用LoadRunner的control进行并发压测。同时打开jvisualvm.exe对tomcat进行线程监控。
5、监控过程中出现了线程死锁的报错,进行了【线程dump】操作,查看报错异常,可以清晰看到具体代码的报错位置。
6、报错代码在com.thread2包下的DeadLockThread2类的第10行代码。将此报错反馈给开发人员over。
异常代码分析:两个线程的方法,分别持有了对方的锁,并且嵌套持有,导致双发无法释放锁,CPU无法获取到执行权限,无法执行线 程中的代码。
监控工具:jvisualvm
应用服务器:tomcat 7.8
在做性能测试过程中,一般都会对应用程序进行一些监控,看应用程序在高并发的过程中是否正常运行。今天这里简单介绍一个多线程死锁的监控整个过程案例。
1、首先看下两段多线程的代码。(特地编写的异常代码,存在线程死锁)。
2、将以上两段代码打成JSP页面。
3、使用tomcat对刚才打的jsp页面进行发布,然后使用LoadRunner进行并发访问。
4、运行tomcat发布刚才的项目,并且使用LoadRunner的control进行并发压测。同时打开jvisualvm.exe对tomcat进行线程监控。
5、监控过程中出现了线程死锁的报错,进行了【线程dump】操作,查看报错异常,可以清晰看到具体代码的报错位置。
6、报错代码在com.thread2包下的DeadLockThread2类的第10行代码。将此报错反馈给开发人员over。
异常代码分析:两个线程的方法,分别持有了对方的锁,并且嵌套持有,导致双发无法释放锁,CPU无法获取到执行权限,无法执行线 程中的代码。
阅读全文
0 0
- 使用Jvisualvm监控线程死锁案例分析
- JVisualVM使用与分析案例
- Java代码测试线程死锁 用jvisualvm监控
- JVisualVM对内存线程的分析使用
- GCD线程死锁解锁案例分析
- 通过jvisualvm查看产生死锁线程
- 使用JVisualVM远程监控Tomcat
- 使用JVisualVM远程监控Tomcat
- 使用JVisualVM远程监控Tomcat
- 使用JVisualVM远程监控Tomcat
- 使用jvisualvm远程监控JVM
- 使用JVisualVM远程监控Tomcat
- 使用JVisualVM远程监控Tomcat
- 使用JVisualVM远程监控Tomcat
- java中线程的同步和死锁案例分析
- 使用JVisualVM进行性能分析
- 使用JDK自带jvisualvm监控tomcat
- 使用JDK自带jvisualvm监控tomcat
- React Native Navigator 引入的那些坑
- 九宫格抽奖
- Q1:控制台输出helloworld
- Day 23 内置、匿名函数及递归
- sort函数用重载运算符出错
- 使用Jvisualvm监控线程死锁案例分析
- 在windows中安装两个MySQL
- 当spa单页面应用遇上SEO,蛋痛的经历
- [算法课模拟题]1000.函数求值
- js 构造器的调用中的问题
- fiddler4使用教程
- Linux 下maven私服搭建一(安装)
- Hello world!
- My New Game