Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để ngắt một chuỗi đang chạy trong Java?

Một chuỗi có thể gửi một ngắt bằng cách gọi ngắt trên Chuỗi đối tượng cho luồng bị ngắt. Điều này có nghĩa là sự gián đoạn của một chuỗi là do bất kỳ chuỗi nào khác gọi ngắt () phương pháp.

Lớp Thread cung cấp ba phương thức ngắt

  • void ngắt () - Làm gián đoạn chuỗi.
  • boolean tĩnh bị gián đoạn () - Kiểm tra xem luồng hiện tại có bị gián đoạn hay không.
  • boolean isInterrupt () - Kiểm tra xem chuỗi có bị gián đoạn hay không.

Ví dụ

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

Đầu ra

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