中断或停止睡眠线程
这个问题在这里已经有了答案:
在你的线程上调用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