Cara Membunuh Benang dengan Berkesan tanpa Menggunakan Kaedah Benang yang Dihentikan.stop()
Kelas Benang Java menyediakan kaedah stop() sebagai cara untuk menamatkan benang, tetapi ia telah ditamatkan dan tidak boleh digunakan. Artikel ini membentangkan pendekatan alternatif untuk menamatkan rangkaian menggunakan kaedah gangguan.
Menggunakan Interrupt untuk Menghentikan Benang
Daripada memanggil terus stop(), yang tidak selamat dan boleh menyebabkan kerosakan data, kami boleh menggunakan gangguan untuk memberi isyarat kepada utas bahawa ia harus ditamatkan dengan anggun. Begini caranya:
public class InterruptedExceptionExample { private static volatile boolean shutdown = false; public static void main(String[] args) { Thread thread = new Thread(() -> { while (!shutdown) { try { System.out.println("Running..."); Thread.sleep(5000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } }); thread.start(); System.out.println("Press enter to quit"); try { System.in.read(); } catch (IOException e) { e.printStackTrace(); } shutdown = true; thread.interrupt(); } }
Dalam kod ini:
Kelebihan Menggunakan Gangguan:
Mengganggu urutan menawarkan beberapa kelebihan berbanding hentian yang tidak digunakan ():
Atas ialah kandungan terperinci Bagaimana untuk Menghentikan Benang Java dengan Selamat Tanpa Menggunakan `Thread.stop()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!