Heim  >  Artikel  >  Java  >  Wie unterbreche ich einen laufenden Thread in Java?

Wie unterbreche ich einen laufenden Thread in Java?

WBOY
WBOYnach vorne
2023-09-18 13:49:02801Durchsuche

Wie unterbreche ich einen laufenden Thread in Java?

Ein Thread kann einen Thread unterbrechen, indem er ein Interrupt-Signal sendet, indem er die Methode interrupt() des Thread-Objekts aufruft. Dies bedeutet, dass die Unterbrechung des Threads durch andere Threads verursacht wird, die die Methode interrupt() aufrufen. Die

Thread-Klasse bietet drei Interrupt-Methoden:

  • void interrupt() – unterbricht den Thread.
  • static boolean interrupted() – Testet, ob der aktuelle Thread unterbrochen ist.
  • boolean isInterrupted() – Testet, ob der Thread unterbrochen ist.

Beispiel

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;
         }
      }
   }
}

Ausgabe

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

Das obige ist der detaillierte Inhalt vonWie unterbreche ich einen laufenden Thread in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen