Cara Menamatkan Benang dalam Java dengan Anggun
Apabila menutup aplikasi Java, penamatan benang dengan berkesan adalah penting untuk mengelakkan pengecualian dan memastikan yang betul pelepasan sumber. Dalam konteks ini, terdapat dua aspek utama yang perlu dipertimbangkan: cara memulakan penamatan benang dan cara mengendalikan proses penamatan dengan bersih.
Untuk memulakan penamatan benang, kaedah Thread.interrupt() harus digunakan dan bukannya kaedah stop() tidak digunakan lagi. Apabila interrupt() dipanggil, ia mencetuskan bendera dalam utas sasaran, yang akan menyebabkan utas terkeluar daripada sebarang operasi tidur, tunggu atau input/output.
Proses penamatan benang melibatkan kedua-dua permulaan dan menghentikan benang. Dalam contoh yang disediakan, kelas ServletContextListener menguruskan kitaran hayat benang: ia memulakan utas apabila aplikasi memulakan dan menghentikan utas apabila aplikasi dimatikan. Mengendalikan penamatan dengan bersih melibatkan pemeriksaan isyarat gangguan secara kerap dalam kaedah larian benang. Berikut ialah versi terkini kelas IndexProcessor yang menggabungkan semakan ini:
public class IndexProcessor implements Runnable { private static final Logger LOGGER = LoggerFactory.getLogger(IndexProcessor.class); @Override public void run() { while (!Thread.currentThread().isInterrupted()) { try { LOGGER.debug("Sleeping..."); Thread.sleep((long) 15000); LOGGER.debug("Processing"); } catch (InterruptedException e) { LOGGER.error("Exception", e); Thread.currentThread().interrupt(); } } } }
Dengan kerap menyemak isyarat gangguan, urutan boleh mengendalikan penamatan dengan anggun dan mengelakkan pengecualian yang berlaku dalam contoh asal.
Ringkasnya, kaedah pilihan untuk menghentikan thread dalam Java adalah menggunakan Thread.interrupt() dan mengendalikan proses penamatan dalam kaedah larian benang dengan memeriksa isyarat gangguan dengan kerap. Ini memastikan bahawa utas boleh dihentikan dengan bersih dan tanpa pengecualian, membenarkan penutupan aplikasi yang anggun.
Atas ialah kandungan terperinci Bagaimana untuk Menghentikan Benang di Jawa dengan Anggun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!