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()不清除状态

经验分享 程序员 微信小程序 职场和发展