如何检查线程是否终止?

时间:2011-05-06 11:11:33

标签: java multithreading

线程何时达到已终止状态?到达run()方法结束时是否会终止?

那么检查线程是否被终止的正确方法是什么?因为以下情况似乎总是适合我

if(!(thread.getState()).equals("TERMINATED")){}

有什么想法吗?

2 个答案:

答案 0 :(得分:17)

首先:Thread.getState()返回一个Thread.State,它永远不会等于String,所以你需要像这样编写代码:

if(thread.getState()!=Thread.State.TERMINATED){ }

是的:当run()方法结束时(正常或因为它抛出异常),Thread将进入TERMINATED状态。

答案 1 :(得分:13)

测试方法thread.isAlive()

...或者,可选择加入,直至完成thread.join()