Ich habe eine Anfrage, um eine Analyse laufender Threads innerhalb einer JVM zu erstellen, um lange laufende Jobs zu überwachen. Gibt es eine Möglichkeit, den Starttermin eines Java-Threads zu finden? Ich habe kein Problem, die Threads zu bekommen, aber ich kann nicht herausfinden, wie lange der Thread aktiv war oder wann er gestartet wurde. Um die Threads zu erhalten, liste ich einfach über die ThreadGroup auf.Gibt es eine Möglichkeit festzustellen, wann ein Java-Thread gestartet wurde?
Beachten Sie, dass ich keine Kontrolle über die tatsächlichen Threads selbst habe, also kann ich keine Zeit oder Eigenschaft eingeben und die Startzeit selbst protokollieren. Alles was ich habe ist der eigentliche Thread selbst und muss die Daten daraus ermitteln. Ich kann zwei Methoden auf dem Thread finden - "getThreadCpuTime()" und "getThreadUserTime()", aber ich bin mir nicht sicher, ob das genug ist, da der Thread gelegentlich eine sleep() -Methode aufruft, und ich habe Angst davor die "Schlaf" -Zeit wäre in keiner dieser Methoden enthalten.
Gibt es eine Möglichkeit, die Startzeit für einen Thread zu bestimmen? Oder gibt eine der beiden Zeitmethoden zurück, wie lange ein Thread aktiv war?
Verwandte: [http://stackoverflow.com/questions/9874641/tracking-java-thread-creation-and-lifetime] (Thread-Erstellung und Lebensdauer) – Jayan
Related: [http://stackoverflow.com/questions/12491112/thread-creation-listener] (Thread-Erstellung Listener) –
Sie können 'ThreadLocal' verwenden, um die Startzeit für dieses' Thread' zu speichern. –