Java线程中断的本质
本质: JVM设置线程的中断标记,不同于操作系统的抢占式中断;
Java线程中断作用
- 中断处于WAITING、TIMED_WAITING状态的线程,使其抛出中断异常;
- 设置中断标记位,应用程序通过判断该标记为取消任务、线程终止等;
Thread.interrupt() VS Future.cancel()
Future.cancel()底层会调用Thread.interrupt();
Java线程中断陷阱
- 对于线程池来说,使用Future.cancel()取消任务时,如果任务的逻辑是while(true)、竞争对象锁、IO阻塞等是无法取消的;