如何在 Java 中获取线程 NID(本机 ID)
Posted
技术标签:
【中文标题】如何在 Java 中获取线程 NID(本机 ID)【英文标题】:How To Get Thread NID(Native ID) in java 【发布时间】:2015-12-11 07:08:36 【问题描述】:“remoting-jmx client-thread-4”守护进程prio=6 tid=0x000000000f86b000 nid=0x20e0 >等待条件[0x000000000b82e000] java.lang.Thread.State:TIMED_WAITING(停车) 在 sun.misc.Unsafe.park(本机方法) - 停车等待 (a >java.util.concurrent.SynchronousQueue$TransferStack) 在 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226) 在 >java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQue>ue.java:460) 在 >java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.j>ava:359) 在 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:942) 在 >java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068) 在 >java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) 在 >java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:745)
在这个线程转储中,我们有线程 Nid。这个 Nid 我如何从 java 代码中的线程中获取它。
【问题讨论】:
你不能。它没有 API。 【参考方案1】:这是一个gist,它显示了如果您可以在应用程序中包含来自project lombok 的lombok.jar
和来自JDK 的sa-jdi.jar
,如何获取NID。
【讨论】:
以上是关于如何在 Java 中获取线程 NID(本机 ID)的主要内容,如果未能解决你的问题,请参考以下文章