程序员社区

(Java并发面试题)Java中interrupted 和isInterruptedd方法的区别?

interrupted() 和 isInterrupted()的主要区别是前者会将中断状态清除而后者不会。

Java多线程的中断机制是用内部标识来实现的,调用Thread.interrupt()来中断一个线程就会设置中断标识为true。当中断线程调用静态方法Thread.interrupted()来检查中断状态时,中断状态会被清零。

非静态方法isInterrupted()用来查询其它线程的中断状态且不会改变中断状态标识。简单的说就是任何抛出InterruptedException异常的方法都会将中断状态清零。

无论如何,一个线程的中断状态都有可能被其它线程调用中断来改变。

Java面试题

赞(0) 打赏
未经允许不得转载:IDEA激活码 » (Java并发面试题)Java中interrupted 和isInterruptedd方法的区别?

一个分享Java & Python知识的社区