【发布时间】:2013-03-18 14:27:48
【问题描述】:
我有一个请求,要对 JVM 中正在运行的线程进行分析,以监控长时间运行的作业。有没有办法找到 Java 线程的开始日期/时间?我获取线程没有问题,但我无法找出任何方法来找出线程已激活多长时间或何时开始。为了获取线程,我只是在 ThreadGroup 上进行枚举。
请注意,我无法控制实际线程本身,因此我无法输入任何时间或属性并自己记录开始时间。我只有实际线程本身,需要从中确定数据。我可以在线程上找到两种方法——“getThreadCpuTime()”和“getThreadUserTime()”,但我不确定这些是否足够,因为显然线程偶尔会调用 sleep() 方法,我担心“睡眠”时间不会包含在这两种方法中。
有什么方法可以确定线程的开始时间吗?或者这两种时间方法中的任何一种都会返回线程活动的时间?
【问题讨论】:
-
相关:[stackoverflow.com/questions/9874641/…(线程创建和生命周期)
-
您可以使用
ThreadLocal保存该Thread的开始时间。
标签: java multithreading