如何在Java线程上解释可运行但没有堆栈跟踪的线程?

如何在Java线程上解释可运行但没有堆栈跟踪的线程?,java,debugging,Java,Debugging,我正在调试一个旧式Java应用程序,线程转储(通过jstack获得)包含以下条目: "Thread-8" prio=10 tid=0x0000000055f2c800 nid=0x49bf runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE 就这样。没有堆栈跟踪 这是怎么回事?如何定位在此线程中执行的Java代码?该线程没有(或没有)执行Java代码。它处理未在Java中实现的任务,这些任务不是由任何Java调用

我正在调试一个旧式Java应用程序,线程转储(通过
jstack
获得)包含以下条目:

"Thread-8" prio=10 tid=0x0000000055f2c800 nid=0x49bf runnable [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
就这样。没有堆栈跟踪


这是怎么回事?如何定位在此线程中执行的Java代码?

该线程没有(或没有)执行Java代码。它处理未在Java中实现的任务,这些任务不是由任何Java调用方直接请求的。例如,如果相应的操作系统线程刚刚捕捉到一个信号。

为什么将此作为注释而不是答案发布?线程的名称根本没有帮助;他们应该总是正确地命名线程。@noahz:我对它没有足够的信心。我做了一个回答,我们将看看社区是否喜欢它。也许这些是由于
jstack
本身而执行的thead?我可以向jstack添加一个标志来显示本机框架吗?Java应用程序通过启动本机Linux线程的JNI调用C库。