Java线程:线程中断

  interrupt方法可以用来请求终止线程。

  当对一个线程调用interrupt方法时,线程的中断状态被置位。这时每个线程都有boolean标志。每个线程都应该不时的检查这个标志,以判断线程是否被中断。

  要想弄清楚中断状态是否被置位,首先调用静态的Thread.currentThread方法获得当前线程,然后调用isInterrupted方法:

1 while (!Thread.currentThread().isInterrupted()&&more work to do)
2 {
3       do more work      
4 }

  当在一个被堵塞的线程(调用sleep或wait)上调用interrupt方法时,堵塞调用将会被Interrupted Exception 异常中断。

注意:

  1 一个被中断的线程不一定被终止。中断一个线程只不过是引起它的注意。被中断的线程可以决定如何响应中断。

  2 有两个类似的中断线程的方法interrupted和isInterrupted。Interrupted是一个静态方法,它检测当前的线程是否被中断,而且会清除该线程的中断状态。而isInterrupted可用来检验是否有线程被中断,并且不会改变中断状态。

当神已无能为力,那便是魔渡众生
原文地址:https://www.cnblogs.com/liuzhongfeng/p/5063793.html