Java interrupted()メソッドとisInterruptメソッドの違い

1425 ワード

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と判断し、2回目に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()はステータスをクリアしません