我搜索并找到了通过向其添加 boolean 值来确定另一个线程是否被挂起的方法。但是,我不想(不想)修改其他线程的代码。而且,我需要检测它是否因任何原因被卡住(甚至是错误,因此在这种情况下其他线程也可能没有响应)。
我看到 Eclipse 是如何做到这一点并显示应用程序的线程没有响应,我想知道他们是如何编码的。
动机:我需要这个来从 3D lwjgl 应用程序中释放鼠标(松开它),并且这必须独立于任何 IDE,应用程序本身必须执行此操作。我正在尝试监视主应用程序线程。
最佳答案
虽然不一定是最好的主意,但您可以使用 Thread#getState()
查看线程的当前状态。
但是,这取决于线程的上下文。如果由于无法跳出循环而被卡住,则此方法无法工作。此外,如果它只是等待锁或有界集合,那么这将是一个错误调用。
线程应处于以下 3 种状态:BLOCKED
, WAITING
,或TIMED_WAITING
.
关于java - 如何检测另一个java线程是否被挂起或卡住?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28618823/