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。
2008-12-16
Debugging Deadlocks - Print All Stack Traces
http://www.symphonious.net/2008/11/24/debugging-deadlocks-print-all-stack-traces/
如何處理 Deadlock ,雖然最近沒在寫 thread 的程式,不過留著記錄,說不定哪天會用到。
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言