中断的原理:
Java中断机制是一种协作机制,也就是说通过中断并不能直接终止另一个线程,而需要被中断的线程自己处理中断。如果线程不响应中断,那么中断机制就对当前线程无效。
简单来说就是设置中断标示位
中断的响应
程序里发现中断后该怎么响应?这就得视实际情况而定了。需要由程序自己捕获异常处理或者通过调用 Thread.currentThread().interrupt() 来重新设置中断状态。然后交由上层继续处理。
API
方法 | 方法描述 |
---|---|
public static boolean interrupted() | 返回线程的中断标志位,同时会重置中断标志位 |
public boolean isInterrupted() | 返回线程的中断标志位。线程的中断状态不受该方法的影响。 |
public void interrupt() | 中断线程,具体说明见下图 |