long[] moniterthreads = mxb.findmonitordeadlockedthreads(); if (moniterthreads != null) { sb.append("moniterthreads:").append(moniterthreads.length).append('\n'); threadinfo[] moniterthreadinfos = mxb.getthreadinfo(moniterthreads); for (threadinfo ti : moniterthreadinfos) { // lockinfo li = ti.getlockinfo(); // lockinfo li = ti.getlockownerid(); thread thread = threadmap.get(ti.getthreadid()); if (thread != null) { threadgroup tg = thread.getthreadgroup(); stacktraceelement[] stes = thread.getallstacktraces().get(thread); sb.append("threadgroup=").append((tg != null ? tg.getname() : "")); if (stes != null) { for (stacktraceelement ste : stes) { sb.append(",").append(ste.tostring()); } } } else { sb.append("threadgroup=").append("thread is null?"); } sb.append(",name=") .append(thread.getname()) .append(",lockclassname=") .append(((ti.getlockname() != null) ? ti.getlockname() : "")) .append(",state=") .append(ti.getthreadstate()) .append('\n'); } } // long[] lockedthreads = mxb.finddeadlockedthreads(); long[] lockedthreads = mxb.findmonitordeadlockedthreads(); if (lockedthreads != null) { sb.append("lockedthreads:").append(lockedthreads.length).append('\n'); threadinfo[] lockthreadinfos = mxb.getthreadinfo(lockedthreads); for (threadinfo ti : lockthreadinfos) { // lockinfo li = ti.getlockownerid(); thread thread = threadmap.get(ti.getthreadid()); if (thread != null) { threadgroup tg = thread.getthreadgroup(); stacktraceelement[] stes = thread.getallstacktraces().get(thread); sb.append("threadgroup=").append((tg != null ? tg.getname() : "")); if (stes != null) { for (stacktraceelement ste : stes) { sb.append(",").append(ste.tostring()); } } } else { sb.append("threadgroup=").append("thread is null?"); } sb.append(",name=") .append(thread.getname()) .append(",lockclassname=") .append(((ti != null) ? ti.getlockname() : "")) .append(",state=") .append(ti.getthreadstate()) .append('\n'); } } } catch (exception e) { e.printstacktrace(); } if (sb.length() > 0) { system.out.println(sb.deletecharat(sb.length() - 1).tostring()); } } }
死锁检测2
最新推荐文章于 2023-07-14 17:12:09 发布