http://www.symphonious.net/2008/11/24/debugging-deadlocks-print-all-stack-traces/
如何處理 Deadlock ,雖然最近沒在寫 thread 的程式,不過留著記錄,說不定哪天會用到。
private static void printAllStackTraces() {
Map liveThreads = Thread.getAllStackTraces();
for (Iterator i = liveThreads.keySet().iterator(); i.hasNext(); ) {
Thread key = (Thread)i.next();
System.err.println("Thread " + key.getName());
StackTraceElement[] trace = (StackTraceElement[])liveThreads.get(key);
for (int j = 0; j < trace.length; j++) {
System.err.println("\tat " + trace[j]);
}
}
}
其內容是寫說用上面這 method 去印出 thread 中的相關資訊,以便發現是哪個 thread 造成的 lock。
沒有留言:
張貼留言