中断或停止睡眠线程

这个问题在这里已经有了答案:

  • 我怎样才能杀死一个线程? 不使用stop(); 3个答案

  • 在你的线程上调用interrupt()方法。 这将导致睡眠被取消,并引发InterruptedException。


    您可以使用Thread.interrupt()中断睡眠线程。 现在停止线程已被弃用 - 如果线程正在锁定某个东西,该怎么办? (有一个Thread.stop() ,但它非常不鼓励)。

    或者,您可以让线程等待通过超时通知对象,而不是通过休眠来通知对象,并且如果希望线程唤醒则可以简化通知对象。


    苏雷什,我想关注一个问题。 interrupt()方法本身不会中断线程。 它只是通过将标志设置为true来向线程发送中断请求。 通常你的线程应该处理取消/中断策略。 Java实践中的并发性第7.1节“任务取消”对此有很好的描述。

    阻塞诸如Thread.sleep和Object.wait之类的库方法会尝试检测线程何时被中断并提前返回。 他们通过清除中断状态并抛出InterruptedException来响应中断。

    链接地址: http://www.djcxy.com/p/16395.html

    上一篇: Interrupting or stopping a sleeping thread

    下一篇: Thread names with implementing Runnable and extending Thread class