gpt4 book ai didi

multithreading - 是否可以使用线程转储找到线程的创建时间?

转载 作者:行者123 更新时间:2023-12-03 13:19:10 24 4
gpt4 key购买 nike

我使用jmap -dump:format=b,file=<file.dump> <PID>命令生成JVM实例的线程转储。我只是想知道是否可以使用生成的线程转储找到在JVM实例中运行的线程的创建时间。

最佳答案

这是堆转储,而不是线程转储。没有有关堆转储中线程创建时间的信息。但是,您可以按如下所述从线程转储中找到它。

  • 使用jstack <PID>转储线程
  • 查找您感兴趣的线程的nid:
    "Thread-7" #30 daemon prio=5 os_prio=0 tid=0x00002aaac9688800 nid=0x6945 runnable [0x00000000429c5000]
    ^^^^^^
    java.lang.Thread.State: RUNNABLE
    at sun.nio.ch.EPoll.epollWait(Native Method)
    at sun.nio.ch.EPollPort$EventHandlerTask.poll(EPollPort.java:194)
    at sun.nio.ch.EPollPort$EventHandlerTask.run(EPollPort.java:268)
    at java.lang.Thread.run(Thread.java:745)
  • 将其转换为小数:TID = 0x6945 = 26949
  • 使用ps -Lo tid,lstart <PID> | grep <TID>获取开始时间
    26949 Tue May 30 19:16:29 2017
  • 关于multithreading - 是否可以使用线程转储找到线程的创建时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44321662/

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