首页  >  问答  >  正文

java的中断线程interrupt()方法,为什么还要把run()方法走完呢?那中断线程不就没有意义了吗?

当线程调用interrupt方法后,为什么还要运行完run方法呢?那中断线程还有什么意义?

高洛峰高洛峰2729 天前733

全部回复(2)我来回复

  • 怪我咯

    怪我咯2017-04-18 09:35:34

    Java中断机制是一种协作机制,也就是说通过中断并不能直接终止另一个线程,而需要被中断的线程自己处理中断。这好比是家里的父母叮嘱在外的子女要注意身体,但子女是否注意身体,怎么注意身体则完全取决于自己。

    详细分析Java中断机制

    回复
    0
  • 黄舟

    黄舟2017-04-18 09:35:34

    Java线程也有一个不让run方法走完的方式,那就是stop方法,可是这个方法已经被jdk弃用了,为什么呢?如果你的线程正在修改某处数据,可以是数据库,可以是写文件,stop方法不由分说就把线程杀死了,那数据是不是就出现混乱,不一致的状况?所以Java的线程采用的是中断机制,并且你可以捕获这个中断,并作出中断后需要做出的操作。

    回复
    0
  • 取消回复