Rumah > Java > javaTutorial > teks badan

Bagaimana untuk mengganggu thread yang sedang berjalan di Java?

WBOY
Lepaskan: 2023-09-18 13:49:02
ke hadapan
869 orang telah melayarinya

Bagaimana untuk mengganggu thread yang sedang berjalan di Java?

Sesuatu benang boleh mengganggu benang dengan menghantar isyarat sampukan dengan memanggil kaedah interrupt() objek benang. Ini bermakna gangguan benang disebabkan oleh urutan lain yang memanggil kaedah interrupt(). Kelas

Thread menyediakan tiga kaedah gangguan:

  • void interrupt() - mengganggu thread.
  • boolean statik terganggu() - Menguji sama ada rangkaian semasa terganggu.
  • boolean isInterrupted() - Menguji sama ada benang terganggu.

Contoh

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;
         }
      }
   }
}
Salin selepas log masuk

Output

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
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengganggu thread yang sedang berjalan di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan