...
一种可以识别java线程中挂起、死锁、资源争用,瓶颈等的线程查看工具,具体帮助信息请见:http://www-01.ibm.com/support/docview.wss?uid=swg27011855&aid=1。
在打开线程时,常用的一个功能就是Monitor Detail,这个功能可以很方便的看出死锁或者锁等待的问题。Detail,这个功能可以很方便的看出死锁或者锁等待的问题,一旦点击这个可以显示信息说明有锁等待,说明就是有问题。
比如附件中的《锁等待线程案例2018-03-31 18_58_30.txt》,看monitor detail就是下面的样子:
根据上面的锁好,从线程中就可以看到是大家都在等待数据库的连接(只要有一个连接长时间不返回,导致其他人都无法拿到数据库的连接),示例是大家等在等impala的连接。
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:840) - locked [0x00000004e40011b8] (a smartbi.connectionpool.ConnectionPool$4) at smartbi.connectionpool.ConnectionPool$4.borrowObject(ConnectionPool.java:466) |
以下功能是Thread Detail的功能界面
点击此可下载ThreadAnalyzer.rar。
...