Rumah > Java > javaTutorial > Bagaimana untuk Menghentikan Benang Java dengan Selamat dan Anggun?

Bagaimana untuk Menghentikan Benang Java dengan Selamat dan Anggun?

Mary-Kate Olsen
Lepaskan: 2024-12-01 22:28:09
asal
493 orang telah melayarinya

How to Safely and Gracefully Stop a Java Thread?

Cara Menghentikan Benang Java dengan Selamat dan Anggun

Apabila bekerja dengan multithreading di Java, mungkin timbul bahawa anda perlu menamatkan benang lebih awal. Untuk menjamin pelaksanaan yang betul dan mengelakkan ketidakstabilan sistem, adalah penting untuk menghentikan rangkaian "dengan anggun." Ini melibatkan membenarkan urutan menyelesaikan sebarang operasi kritikal sebelum menamatkan pelaksanaannya.

Masalah:

Anda telah mencipta urutan yang mengambil masa yang terlalu lama untuk dilaksanakan . Walaupun kelihatan seperti belum selesai, anda ingin menghentikan urutan dengan anggun.

Penyelesaian:

Pendekatan pilihan untuk mencapai ini adalah dengan memanfaatkan pembolehubah boolean dalam urutan sasaran kaedah run(). Menetapkan bendera ini kepada benar dari luar akan memberi isyarat agar urutan ditamatkan dengan anggun. Berikut ialah contoh:

class MyThread extends Thread {

    volatile boolean finished = false;

    public void stopMe() {
        finished = true;
    }

    @Override
    public void run() {
        while (!finished) {
            // Perform tasks
        }
    }
}
Salin selepas log masuk

Elakkan kaedah stop():

Pada masa lalu, kaedah Thread.stop() wujud, tetapi penggunaannya sangat kuat berkecil hati. Mengikut dokumentasi Java, kaedah ini "membuka kunci semua monitor yang telah dikunci" semasa pelaksanaan, membawa kepada potensi ketidakkonsistenan data dan tingkah laku sewenang-wenangnya.

Oleh itu, menggunakan bendera boolean seperti yang digambarkan di atas memastikan keselamatan dan mekanisme penamatan benang terkawal.

Atas ialah kandungan terperinci Bagaimana untuk Menghentikan Benang Java dengan Selamat dan 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan