多线程中的interrupt()方法介绍

282 阅读1分钟

作用

用来中断阻塞任务,如果任务没有阻塞就不会抛出中断异常。

方法

  • Thread类的interrupt()设置线程中断状态为true。
  • 调用ExecutorshutdownNow()方法。
  • 调用**Future<?>**的cancel(true)方法。

何时触发

当任务要进入到阻塞操作或处于阻塞操作内部时,就会发生中断,即InterruptException异常。

例外

I/O操作和同步方法synchronized无法通过interrupt()方法中断。

引发阻塞的情况

  1. 调用sleep
  2. 调用wait()
  3. 等待某个输入或输出
  4. 调用同步方法,但对象锁不可用