Rumah > Java > javaTutorial > Bagaimana untuk Memulakan, Berhenti, dan Mulakan Semula Benang di Jawa dengan Anggun?

Bagaimana untuk Memulakan, Berhenti, dan Mulakan Semula Benang di Jawa dengan Anggun?

Mary-Kate Olsen
Lepaskan: 2024-10-31 11:37:29
asal
706 orang telah melayarinya

How to Gracefully Start, Stop, and Restart Threads in Java?

Kitaran hayat benang dalam Java: Mula, Berhenti, Mulakan Semula

Pengurusan benang adalah penting untuk konkurensi di Java. Dalam artikel ini, kami menangani teka-teki untuk memulakan, menghentikan dan memulakan semula urutan.

Memulakan Thread

Membuat kelas Runnable atau Callable dan menyerahkannya kepada Objek benang ialah cara konvensional untuk memulakan utas.

Menghentikan Benang

Walaupun terdapat salah tanggapan biasa, menghentikan utas secara tiba-tiba tidak disyorkan. Sebaliknya, beri isyarat pada urutan untuk ditamatkan dengan anggun:

  1. Tentukan pembolehubah boolean yang tidak menentu untuk menunjukkan keadaan penamatan yang diingini (isTerminating).
  2. Semak isTerminating secara berkala dalam kaedah run thread.
  3. Apabila isTerminating benar, hentikan pelaksanaan utas.

Mulakan Semula Thread

Setelah utas berhenti, ia tidak boleh dimulakan semula secara langsung. Walau bagaimanapun, pertimbangkan pilihan ini:

  • Buat Benang Baharu: Tamatkan rangkaian sedia ada dan buat yang baharu dengan tugasan yang sama.
  • Tangguhkan /Resume Thread: Daripada menghentikan benang, gantungnya. Apabila ia perlu disambung semula, maklumkan untuk meneruskan pelaksanaan. Ini memastikan benang kekal hidup dan mengelakkan overhed mencipta dan memusnahkan benang berulang kali.

Contoh Menamatkan Benang:

public class Task implements Runnable {

    private volatile boolean isTerminating;

    @Override
    public void run() {
        while (!isTerminating) {
            // Perform task
        }
        System.out.println("Thread terminated.");
    }

    public void setIsTerminating(boolean terminating) {
        this.isTerminating = terminating;
    }
}
Salin selepas log masuk

Di bahagian utama приложение, panggil setIsTerminating(true) dan join() untuk menunggu urutan ditamatkan dengan baik.

Atas ialah kandungan terperinci Bagaimana untuk Memulakan, Berhenti, dan Mulakan Semula 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan