如何检查线程是否终止?

发布于 2024-11-05 14:41:54 字数 201 浏览 0 评论 0原文

线程何时达到终止状态?当 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

束缚m 2024-11-12 14:41:54

第一: Thread.getState()返回 Thread.State,永远不会等于 a String,因此您需要像这样编写代码:

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

是的:当 run() 方法结束时(正常情况下或因为它抛出异常),然后Thread 将转到 <代码>终止状态。

First: Thread.getState() returns a Thread.State, which will never be equal to a String, so you'd need to write that code like this:

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

And yes: when the run() method ends (either normally or because it throws an exception), then a Thread will go to the TERMINATED state.

楠木可依 2024-11-12 14:41:54

测试方法 thread.isAlive()

...或者可选地,使用 thread.join() 加入直到完成

test the method thread.isAlive()

... or optionally, join until it finishes with thread.join()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文