Có, có thể nếu bạn đang chạy Oracle JDK/OpenJDK trên Linux.
Ý tưởng là tìm id chuỗi gốc (TID) và sau đó xem thời gian sửa đổi của /proc/JAVA_PID/task/TID
tệp giả.
Nếu bạn có một Dump Thread, thì điều này là tầm thường: id chủ đề gốc sẽ được in bởi tiêu đề chuỗi.
Ví dụ, quá trình Java PID là 2086. Bạn có loại
$ jstack 2086
và có được một stack trace với các chủ đề sau đây quan tâm:
"Thread-26" prio=10 tid=0x00007f96c80c2800 nid=0x86a waiting on condition [0x00007f96c0ff2000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
đâu nid=0x86a
là thread ID bản địa. 0x86a = 2154, do đó, bạn muốn khám phá nhiệm vụ năm 2154 của quá trình 2086:
$ ls -ld /proc/2086/task/2154
dr-xr-xr-x 6 user user 0 Mar 10 23:12 /proc/2086/task/2154
^^^^^^^^^^^^
the thread start time
Cảm ơn bạn đã nhập. Tôi không hoàn toàn hiểu được lời giải thích. Tôi có một bãi chứa thread. Có một tập tin pseude TID cho mỗi chủ đề? Nếu bạn có thể cung cấp một ví dụ, điều đó thật tuyệt vời. –
@bobdabelina Tôi đã cập nhật câu trả lời bằng một ví dụ. – apangin
Cảm ơn rất nhiều. Điều này rất hữu ích. –