1. 我用的 jdk 是1.8,打开 jdk 的安装目录(D:\Program Files\Java\jdk1.8.0_05\bin),双击 jvisualvm.exe ,打开之后自动连接上本地的 java 进程,如需远程连接需要配置 tomcat 或者 weblogic 的 jvm 参数 (参考文章:https://blog.csdn.net/fengchao2016/article/details/77237057),配置好后也可以用本地 idea 调试远程服务器上的代码(参考文章:https://www.cnblogs.com/qnight/p/8983145.html)。
2. 安装插件,可以使用 btrace,在里面添加log日志,打印远程服务器上的参数信息,参考文章(https://blog.csdn.net/keketrtr/article/details/74448127)
3. 打开后如下图:
4. 运行 TestDeadLock.java,可以看到本地里面多了一个进程
public class TestDeadLock {
public void run() {
MyThread mt = new MyThread();
new Thread(mt, "张三").start();
new Thread(mt, "李四").start();
}
class MyThread implements Runnable {
private Object o1 = new Object();
private Object o2 = new Object();
private boolean flag = true;
@Override
public void run() {
if