gpt4 book ai didi

java - 有没有办法确定 Java 线程何时启动?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:34:32 25 4
gpt4 key购买 nike

我收到了一个请求,要对 JVM 中正在运行的线程进行分析,以监控长时间运行的作业。有没有办法找到 Java 线程的开始日期/时间?我在获取线程方面没有问题,但是我想不出任何方法来查明线程已激活多长时间或何时开始。为了获取线程,我只是对 ThreadGroup 进行枚举。

请注意,我无法控制实际线程本身,因此我无法输入任何时间或属性并自行记录开始时间。我所拥有的只是实际线程本身,需要从中确定数据。我可以在线程上找到两种方法——“getThreadCpuTime()”和“getThreadUserTime()”,但我不确定这些是否足够,因为显然线程偶尔会调用 sleep() 方法,我担心“ sleep ”时间不会包含在这两种方法中。

有什么方法可以确定线程的开始时间吗?或者这两种时间方法中的任何一种都会返回线程处于 Activity 状态的时长?

最佳答案

这可能是 X-Y 问题吗?

http://www.perlmonks.org/index.pl?node_id=430320

我不知道有什么方法可以确定线程何时启动。但我不确定这是否是真正相关的信息。您是否要分析性能?您是否希望将长时间运行的线程用作性能不佳的指标?

问题是线程总是被重复使用。 Tomcat 汇集其 AJP 和 HTTP 线程。当他们收到一个新的请求时,一个线程会跳出它的循环并执行一些操作,然后返回到等待状态。您想要衡量该操作,而不是整个线程。

再举个例子,垃圾回收线程。这将始终是一个长时间运行的线程,因为它在 JVM 启动时启动!

关于java - 有没有办法确定 Java 线程何时启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15479230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com