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可用来检验是否有线程被中断,并且不会改变中断状态。
当神已无能为力,那便是魔渡众生