ブログトップ 記事一覧 ログイン 無料ブログ開設

水まんじゅう

2015-07-01

ThreadDumpの内容をJavaのコード内で扱う

@さんにおしえてもらいました。

code

public static void main(String... args) {
    List<ThreadInfo> threadInfos = Arrays.asList(ManagementFactory.getThreadMXBean().dumpAllThreads(true, true));
    System.out.println(threadInfos);
}


output


["Signal Dispatcher" Id=4 RUNNABLE

, "Finalizer" Id=3 WAITING on java.lang.ref.ReferenceQueue$Lock@15db9742
at java.lang.Object.wait(Native Method)
- waiting on java.lang.ref.ReferenceQueue$Lock@15db9742
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

, "Reference Handler" Id=2 WAITING on java.lang.ref.Reference$Lock@6d06d69c
at java.lang.Object.wait(Native Method)
- waiting on java.lang.ref.Reference$Lock@6d06d69c
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)

, "main" Id=1 RUNNABLE
at sun.management.ThreadImpl.dumpThreads0(Native Method)
at sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:446)
at threadinfotest.ThreadInfoTest.main(ThreadInfoTest.java:21)

]



クラスThreadInfo
https://docs.oracle.com/javase/jp/8/api/java/lang/management/ThreadInfo.html

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/megascus/20150701/1435758503