import java.util.Iterator; import java.util.Map; public class ThreadTest1 { public ThreadTest1() { Thread thread = new Thread(new Task()); thread.start(); System.out.println("All Thread Stack Traces."); Map traces = Thread.getAllStackTraces(); Iterator it = traces.entrySet().iterator(); while (it.hasNext()) { System.out.println(it.next()); } System.out.println("\nCurrent Thread Stack Trace."); StackTraceElement[] elements = traces.get(Thread.currentThread()); for (int i = 0; i < elements.length; i++) { System.out.println(elements[i]); } } class Task implements Runnable { public void run() { try { Thread.sleep(1000L); } catch (InterruptedException ex) { System.out.println("Interrupted Exception."); } System.out.println("\nTask Thread Stack Trace."); StackTraceElement[] elements = Thread.currentThread().getStackTrace(); for (int i = 0; i < elements.length; i++) { System.out.println(elements[i]); } } } public static void main(String[] args) { new ThreadTest1(); } }