Java interrupted()方法和isInterrupt方法的区别

1、interrupted():测试当前线程是否已经中断
isInterrupted():测试线程是否已经中断
2、interrupted方法具有清除状态的功能,测试用例如下:

public class Main1 {
    public static void main(String[] args) {
        Thread.currentThread().interrupt();
        System.out.println(Thread.interrupted());
        System.out.println(Thread.interrupted());
    }
}

运行结果为true和false
true的结果很好解释,即调用interrupt()方法,interrupted()方法判断结果为true,当第二次执行Thread.interrupted()时,结果为true,可知,interrupted()方法具有具有清除状态的功能。
3、isInterrupted()不清除状态,测试用例如下:

public class Main2 {
    public static void main(String[] args) {
        Thread.currentThread().interrupt();
        System.out.println(Thread.isInterrupted());
        System.out.println(Thread.isInterrupted());
    }
}

运行结果为true和true,即isInterrupted()不清除状态

你可能感兴趣的:(Java)