長時間実行されているジョブを監視するために、JVM 内で実行中のスレッドの分析を作成するように依頼されました。Javaスレッドの開始日時を見つける方法はありますか? スレッドを取得するのに問題はありませんが、スレッドがアクティブになっている時間やスレッドがいつ開始されたかを調べる方法がわかりません。スレッドを取得するには、単に ThreadGroup を列挙しています。
私は実際のスレッド自体を制御できないことに注意してください。そのため、時間やプロパティを入力して開始時間を自分で記録することはできません。私が持っているのは実際のスレッド自体であり、そこからデータを決定する必要があります。スレッド上に「getThreadCpuTime()」と「getThreadUserTime()」の 2 つのメソッドを見つけることができますが、明らかにスレッドが sleep() メソッドを呼び出すことがあると思われるため、これらで十分かどうかはわかりません。 「スリープ」時間は、これらの方法のいずれにも含まれません。
スレッドの開始時間を決定する方法はありますか? それとも、2 つの時間メソッドのいずれかが、スレッドがアクティブであった時間を返すのでしょうか?