Alternatif untuk Menggunakan Thread.stop() untuk Menamatkan Thread
Apabila menamatkan thread, menggunakan kaedah Thread.stop() tidak digalakkan kerana kepada sifatnya yang berpotensi mengganggu. Sebaliknya, pertimbangkan alternatif berikut:
Pendekatan Berasaskan Interrupt:
Mekanisme gangguan membolehkan anda memberi isyarat kepada utas bahawa ia harus menamatkan pelaksanaannya dengan baik. Ini dicapai dengan memanggil Thread.interrupt(), yang menetapkan bendera terputus benang. Urutan kemudiannya boleh menyemak bendera ini secara berkala dan, jika ditetapkan, menamatkan pelaksanaannya.
Sebagai contoh, kod berikut menunjukkan cara menggunakan gangguan untuk menghentikan urutan:
public class InterruptExample { public static void main(String[] args) { Thread thread = new Thread(new Runnable() { @Override public void run() { while (!Thread.currentThread().isInterrupted()) { try { // Perform some task... } catch (InterruptedException e) { // Handle interruption gracefully and terminate execution } } } }); thread.start(); // Interrupt the thread after a certain delay try { Thread.sleep(5000); thread.interrupt(); } catch (InterruptedException e) { e.printStackTrace(); } } }
Dalam ini contoh, benang menyemak benderanya yang terganggu secara berkala dan ditamatkan apabila ia ditetapkan. Ambil perhatian bahawa memanggil Thread.interrupted() dalam blok percubaan akan mengosongkan bendera, jadi ia harus dipanggil di luar gelung.
Kebaikan menggunakan interrupt:
Atas ialah kandungan terperinci Apakah Alternatif Selamat untuk Thread.stop() untuk Menamatkan Thread dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!