Rumah > Java > javaTutorial > Bagaimana untuk Menghentikan Benang di Jawa dengan Anggun?

Bagaimana untuk Menghentikan Benang di Jawa dengan Anggun?

DDD
Lepaskan: 2024-12-25 16:00:20
asal
844 orang telah melayarinya

How to Gracefully Stop a Thread in Java?

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

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!

sumber:php.cn
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