Rumah  >  Artikel  >  Java  >  Penerokaan ke dalam kitaran hayat benang Java

Penerokaan ke dalam kitaran hayat benang Java

PHPz
PHPzasal
2024-04-11 14:15:01637semak imbas

Benang Java melalui peringkat kitaran hayat berikut: Penciptaan: Dicipta dengan mewarisi kelas Thread atau melaksanakan antara muka Runnable. Penyediaan: Selepas penciptaan, utas memasuki keadaan penyediaan dan menunggu pelaksanaan penjadualan. Berjalan: Dijadualkan untuk pelaksanaan, kod sedang dilaksanakan. Menyekat: Kod tidak boleh dilaksanakan apabila halangan ditemui. Tunggu: Tunggu secara aktif untuk urutan lain. Tidur: Panggil kaedah sleep() untuk tidur, dan kod tidak boleh dilaksanakan. Pemberitahuan: bangun melalui kaedah notify() atau notifyAll(). Kematian: Selepas pelaksanaan selesai atau ralat berlaku, pelaksanaan tidak lagi boleh dijadualkan.

Penerokaan ke dalam kitaran hayat benang Java

Menerokai kitaran hayat benang Java

Di Java, benang ialah proses ringan dengan tindanan, keadaan dan konteks pelaksanaannya sendiri. Setiap benang mempunyai kitaran hayat yang unik, termasuk peringkat berikut:

1 Penciptaan

Kitaran hayat benang bermula dengan penciptaan, yang boleh dicapai dengan:

// 通过继承 Thread 类实现
Thread thread1 = new Thread() {
    public void run() {
        // 线程执行的代码
    }
};

// 通过实现 Runnable 接口实现
Runnable task = new Runnable() {
    public void run() {
        // 线程执行的代码
    }
};
Thread thread2 = new Thread(task);

2 , ia akan memasuki keadaan sedia. Pada masa ini, urutan belum lagi dijadualkan untuk pelaksanaan.

3. Run

Selepas benang dijadualkan berjalan, ia akan memasuki keadaan berjalan. Benang dalam keadaan berjalan sedang melaksanakan kod.

4. Menyekat

Jika benang menghadapi halangan, seperti menunggu sumber, ia akan memasuki keadaan menyekat. Pada ketika ini, benang tidak dapat melaksanakan kod.

5 Menunggu

Benang secara aktif boleh menunggu untuk benang lain. Selepas memanggil kaedah wait(), urutan akan memasuki keadaan menunggu.

6 Tidurwait() 方法后,线程将进入等待状态。

6. 休眠

线程也可以调用 sleep() 方法使其休眠一定时间。在休眠期间,线程无法执行代码。

7. 通知

等待或休眠的线程可以通过调用 notify()notifyAll()

Urutan ini juga boleh memanggil kaedah sleep() untuk menjadikannya tidur untuk tempoh masa tertentu. Semasa tidur, benang tidak boleh melaksanakan kod.

7 Pemberitahuan

Urutan menunggu atau tidur boleh dibangkitkan dengan memanggil kaedah notify() atau notifyAll().

8. Kematian

Apabila thread selesai pelaksanaan atau ralat berlaku, ia akan memasuki keadaan kematian. Benang dalam keadaan mati tidak lagi boleh dijadualkan untuk pelaksanaan.

Kes praktikal🎜🎜🎜Buat benang dan cetak output: 🎜
class MyThread extends Thread {
    public void run() {
        System.out.println("Thread is running");
    }
}

public class Main {
    public static void main(String[] args) {
        MyThread thread = new MyThread();

        thread.start(); // 启动线程

        System.out.println("Thread state: " + thread.getState()); // 输出线程状态
    }
}
🎜Output: 🎜
Thread is running
Thread state: RUNNABLE
🎜Ini menunjukkan bahawa benang berjaya dibuat dan memasuki keadaan berjalan. 🎜

Atas ialah kandungan terperinci Penerokaan ke dalam kitaran hayat benang Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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