ホームページ  >  記事  >  Java  >  Javaで実行中のスレッドを中断するにはどうすればよいですか?

Javaで実行中のスレッドを中断するにはどうすればよいですか?

WBOY
WBOY転載
2023-09-18 13:49:02855ブラウズ

Javaで実行中のスレッドを中断するにはどうすればよいですか?

スレッドは、スレッド オブジェクトの interrupt() メソッドを呼び出して割り込み信号を送信することで、スレッドを中断できます。これは、別のスレッドが interrupt() メソッドを呼び出したことによってスレッドの中断が発生したことを意味します。

Thread クラスには 3 つの割り込みメソッドが用意されています。

  • void中断() - スレッドを中断します。
  • static boolean Interrupted() - 現在のスレッドが中断されているかどうかをテストします。
  • boolean isInterrupted() - スレッドが中断されているかどうかをテストします。

public class ThreadInterruptTest {
   public static void main(String[] args) {
      System.out.println("Thread main started");
      final Task task = new Task();
      final Thread thread = new Thread(task);
      thread.start();
      thread.interrupt(); // calling interrupt()<strong> </strong>method
      System.out.println("Main Thread finished");
   }
}
class Task implements Runnable {
   @Override
   public void run() {
      for (int i = 0; i < 5; i++) {
         System.out.println("[" + Thread.currentThread().getName() + "] Message " + i);
         if(Thread.interrupted()) {
            System.out.println("This thread was interruped by someone calling this Thread.interrupt()");
            System.out.println("Cancelling task running in thread " + Thread.currentThread().getName());
            System.out.println("After Thread.interrupted() call, JVM reset the interrupted value to: " + Thread.interrupted());
            break;
         }
      }
   }
}

出力

Thread main started
Main Thread finished
[Thread-0] Message 0
This thread was interruped by someone calling this Thread.interrupt()
Cancelling task running in thread Thread-0
After Thread.interrupted() call, JVM reset the interrupted value to: false

以上がJavaで実行中のスレッドを中断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。