java中如何判断一个线程是否在wait状态?

2025-04-08 07:00:03
推荐回答(4个)
回答1:

用 isAlive()和isInterrupted() 判断线程处于活动状态和是否终端。如果实现你想要的,wait的时候,维护一下状态。

回答2:

怎么其他回答里一大堆说胡话的 = =
thread.getState() == Thread.State.WAITING
或者
thread.getState() == Thread.State.TIMED_WAITING

取决于你 wait 的方式。

回答3:

api无此类方法,只能自己在线程上置标志

回答4:

interrupt方法,如果报interrupt异常就代表是在wait阻塞态,不过此方法也会终结阻塞态的线程。如果你想实时了解一个线程是什么状态又不想打断线程的执行可以在线程的每个状态去操作另一个类,这样你就不必访问线程本身而访问那个状态器就可以知道线程的状态了,我比较喜欢这么干。