使用Jvisualvm监控线程死锁案例分析
2017-06-26 15:55
465 查看
开发工具:Eclipse
监控工具: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无法获取到执行权限,无法执行线
程中的代码。
监控工具: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无法获取到执行权限,无法执行线
程中的代码。
相关文章推荐
- Linux下Java线程详细监控和其dump的分析使用----分析Java性能瓶颈
- Linux下Java线程详细监控和其dump的分析使用—-分析Java性能瓶颈
- Java线程详细监控和其dump的分析使用—-分析Java性能瓶颈
- 使用Jvisualvm监控JVM的内存、CPU、线程
- Linux下Java线程具体监控和其dump的分析使用----分析Java性能瓶颈[张振华-Jack]
- Java线程详细监控和其dump的分析使用—-分析Java性能瓶颈
- Linux下Java线程详细监控和其dump的分析使用—-分析Java性能瓶颈
- Linux下Java线程详细监控和其dump的分析使用—-分析Java性能瓶颈
- 2016-08-19-java-关于线程的死锁的案例分析:生产者消费者问题
- 心得3--由售票系统中的抢票机制解说同步线程及死锁案例分析
- Linux下Java线程详细监控和其dump的分析使用—-分析Java性能瓶颈
- java中线程的同步和死锁案例分析
- GCD线程死锁解锁案例分析
- java线程基础巩固---多线程死锁分析,案例介绍
- 真实案例:使用Java Thread Dump分析ReadWriteLock导致的死锁问题
- Linux下Java线程详细监控和其dump的分析使用----分析Java性能瓶颈[张振华-Jack]
- 使用Java thread dump分析CPU高使用率和线程死锁问题
- JVisualVM使用与分析案例
- COPY Linux下Java线程详细监控和其dump的分析使用
- Linux下Java线程详细监控和其dump的分析使用----分析Java性能瓶颈[张振华-Jack]