如何检查线程是否终止?
什么时候线程达到终止状态? 到达run()
方法结束时是否会终止?
那么检查线程是否被终止的正确方法是什么? 因为以下情况似乎总是适合我
if(!(thread.getState()).equals("TERMINATED")){}
有任何想法吗?
首先: Thread.getState()
返回一个Thread.State
,它永远不会等于一个String
,所以你需要像这样编写代码:
if(thread.getState()!=Thread.State.TERMINATED){ }
是的:当run()
方法结束时(正常或因为它抛出exception), Thread
将进入TERMINATED
状态。
测试方法thread.isAlive()
…或者可选地,加入直到它完成thread.join()