如何检查线程是否终止?
线程何时达到终止状态?当 run()
方法结束时它会终止吗?
那么检查线程是否终止的正确方法是什么?因为以下条件对我来说似乎总是成立
if(!(thread.getState()).equals("TERMINATED")){}
有什么想法吗?
when does a thread reach the terminated status? Does it get terminated when the end of the run()
method is reached?
So what is the right way to check if a thread is terminated? Because following condition seems to be true always for me
if(!(thread.getState()).equals("TERMINATED")){}
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
第一:
Thread.getState()
返回
Thread.State
,永远不会等于 a
String
,因此您需要像这样编写代码:是的:当
run()
方法结束时(正常情况下或因为它抛出异常),然后Thread
将转到 <代码>终止状态。First:
Thread.getState()
returns aThread.State
, which will never be equal to aString
, so you'd need to write that code like this:And yes: when the
run()
method ends (either normally or because it throws an exception), then aThread
will go to theTERMINATED
state.测试方法
thread.isAlive()
...或者可选地,使用
thread.join()
加入直到完成test the method
thread.isAlive()
... or optionally, join until it finishes with
thread.join()