如何中断线程

已经被抛弃的方法

  • 使用stop()方法停止线程。可以用线程A去停止线程B。这种方法太过暴力,不安全。比如线程A调用线程B的stop()方法去停止线程B。调用时,A并不知道B执行的具体情况,这样突然的停止,会导致B的一些清理工作无法完成。并且,B执行stop()后,会立即释放锁,可能引起数据不同的问题
  • 使用suspend()resume()方法

目前使用的方法

  • 使用interrupt(),通知线程应该中断了。其实并没有中断线程。和yield()一样,只是一个提醒。具体是中断线程还是继续执行,由被通知的线程自己去处理
    在这里插入图片描述
    如处于sleep,wait,join等状态

在这里插入图片描述

如何中断线程_第1张图片

你可能感兴趣的:(Java)