boolean interrupted() //判断当前线程是否被中断,并且该方法调用结束的
时候会清空中断标识位
需要注意的是 interrupt()方法并不会真的中断线程,它只是将中断标识位设
置为 true,具体是否要中断由程序来判断,如下,只要线程中断标识位为 false,也
就是没有中断就一直执行线程方法
new Thread(new Runnable(){
while(!Thread.currentThread().isInterrupted()){
//执行线程方法
}
}).start();
前边我们提到了线程的六种状态,New Runnable Blocked Waing Timed Waing
Terminated,那么在这六种状态下调用线程中断的代码会怎样呢,New 和
Terminated 状态下,线程不会理会线程中断的请求,既不会设置标记位,在
Runnable 和 Blocked 状态下调用 interrupt 会将标志位设置位 true,在 Waing 和
Timed Waing 状态下会发生 InterruptedExcepon 异常,针对这个异常我们如何
处理?
1.在 catch 语句中通过 interrupt 设置中断状态,因为发生中断异常时,中断标志
评论0
最新资源