为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Java中杀死线程?

如何在Java中杀死线程?

慕沐林林 2019-05-31 17:16:21
如何在Java中杀死线程?你怎么杀死一个java.lang.Thread在爪哇?
查看完整描述

4 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

看这个关于他们反对的原因Thread.stop()..它详细介绍了为什么这是一个糟糕的方法,以及应该做什么来安全地停止线程在一般情况下。

他们推荐的方法是使用一个共享变量作为标志,它要求后台线程停止。然后,该变量可以由请求线程终止的另一个对象设置。


查看完整回答
反对 回复 2019-05-31
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

通常你不.。

你让它打断它所做的一切中断()(javadoc链接)

对为什么在javadoc中的一个很好的解释这里(java Technote链接)


查看完整回答
反对 回复 2019-05-31
?
PIPIONE

TA贡献1829条经验 获得超9个赞

在Java中,线程不会被杀死,但是线程的停止是在合作方式..线程被要求终止,然后线程可以优雅地关闭。

经常是volatile boolean字段用于线程在将其设置为相应值时定期检查和终止的字段。

不会boolean检查线程是否应该终止..如果你用volatile作为字段修饰符,这将工作可靠,但如果代码变得更加复杂,则可以在while循环,它可能会发生,您的代码将不终止完全或至少需要更长时间如你所愿。

某些阻塞库方法支持中断。

每个线程都有一个布尔标志。中断状态你应该好好利用它。它可以这样实现:

public void run() {
   try {
      while (!interrupted()) {
         // ...
      }
   } catch (InterruptedException consumed)
      /* Allow thread to exit */
   }}public void cancel() { interrupt(); }

源代码改编自Java并发在实践中的应用..因为cancel()方法是公共的,您可以让另一个线程按需要调用此方法。


查看完整回答
反对 回复 2019-05-31
  • 4 回答
  • 0 关注
  • 1653 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号