現在の実行スレッドは、 currentThread であるメインスレッドであると思われます。すべてのスレッドをダンプする場合は、次を使用します。
public static String getDumpFor(Thread thread) {
StringBuilder st = new StringBuilder();
if (thread.isAlive()) {
StackTraceElement[] stackTrace = thread.getStackTrace();
st.append(thread.toString()).append("\n")
.append(String.format(" State - %s,", thread.getState()))
.append(String.format(" Is daemon = %s,", thread.isDaemon()));
for (StackTraceElement s : stackTrace)
st.append("\tat ").append(s.getClassName()).append(".").append(s.getMethodName()).append("(").append(s.getFileName()).append(":").append(s.getLineNumber()).append(")")
.append("\n");
} else {
st.append(" No thread ");
}
return st.toString();
}
/**
* print thread dump for each active thread over logger API.
*/
public static void dumpActiveThreads() {
Map<Thread, StackTraceElement[]> stackTraces = Thread.getAllStackTraces();
Set<Thread> keySet = stackTraces.keySet();
System.out.println("\nThread dump begin:");
for (Thread thread : keySet)
dumpActiveThread(thread);
System.out.println("\nThread dump end.");
}
ただし、「実際のスレッド名を取得するにはどうすればよいですか?」という質問をまだ誤解している可能性があります...