如何检查线程是否处于休眠状态?
2022-09-04 01:00:43
有没有办法检查给定的线程是否处于休眠状态?
您可以调用 Thread.getState()
on 并检查状态是否为 TIMED_WAITING
。
但是,请注意,这并不一定意味着名为sleep()
的线程,它也可以在Object.wait(long)
调用或类似的东西中等待。TIMED_WAITING
这是一个丑陋的黑客来检查另一个线程是否正在休眠(调用):Thread.sleep
public static boolean isSleeping(Thread t) {
StackTraceElement[] ste = t.getStackTrace();
return ste.length > 0
&& ste[0].getClassName().equals("java.lang.Thread")
&& ste[0].getMethodName().equals("sleep");
}