Rumah Java javaTutorial Penjelasan terperinci tentang lima keadaan benang Java dan peraturan peralihan keadaan

Penjelasan terperinci tentang lima keadaan benang Java dan peraturan peralihan keadaan

Feb 19, 2024 pm 05:03 PM
negeri benang java Peraturan penukaran

Penjelasan terperinci tentang lima keadaan benang Java dan peraturan peralihan keadaan

Pemahaman mendalam tentang lima keadaan benang Java dan peraturan penukarannya

1 Pengenalan kepada lima keadaan benang
Di Jawa, kitaran hayat benang boleh dibahagikan kepada lima keadaan berbeza, termasuk. keadaan baru (BARU) , keadaan sedia (RUNNABLE), keadaan berjalan (RUNNING), keadaan disekat (BLOCKED) dan keadaan ditamatkan (TERMINATED).

  1. Keadaan baharu (BARU): Apabila objek benang dicipta, ia berada dalam keadaan baharu. Pada ketika ini, objek benang telah memperuntukkan sumber yang mencukupi untuk melaksanakan tugas, tetapi masih belum mula melaksanakan kaedah run().
  2. Keadaan sedia (RUNNABLE): Apabila benang memanggil kaedah mula(), benang akan memasuki keadaan sedia. Benang dalam keadaan sedia mempunyai syarat untuk dijalankan dan sedang menunggu CPU memperuntukkan segmen masa untuk melaksanakan kod.
  3. Keadaan berjalan (RUNNING): Apabila benang dalam keadaan sedia memperoleh segmen masa CPU, ia memasuki keadaan berjalan dan mula melaksanakan kod dalam kaedah run(). Benang akan terus berjalan sehingga ia ditamatkan sendiri atau diganggu oleh benang lain.
  4. Keadaan disekat (DISEKAT): Dalam keadaan berikut, benang akan memasuki keadaan disekat:

    • Kaedah sleep() dipanggil dan sumber CPU secara aktif diserahkan.
    • Menunggu keluaran sumber, seperti sumber terkunci.
    • Thread menunggu penyiapan utas lain dalam kaedah join().
  5. Keadaan ditamatkan (TERMINATED): Selepas benang tamat, ia memasuki keadaan ditamatkan. Selepas utas melengkapkan pelaksanaan kod dalam kaedah run() atau utas ditamatkan kerana pengecualian atau sebab lain, utas akan memasuki keadaan ditamatkan.

2. Peraturan penukaran antara negeri
Terdapat peraturan penukaran tertentu antara keadaan urutan di bawah kami memperkenalkan peraturan penukaran antara setiap negeri.

  1. Keadaan baharu (BARU) ditukar kepada keadaan sedia (RUNNABLE): Apabila objek benang dicipta dan kaedah mula() dipanggil, benang ditukar daripada keadaan baharu kepada keadaan sedia.
  2. Tukar keadaan sedia (RUNNABLE) kepada keadaan berjalan (RUNNING): Apabila benang memperoleh sumber CPU, ia berubah daripada keadaan sedia kepada keadaan berjalan.
  3. Menukar keadaan berjalan (RUNNING) kepada keadaan menyekat (BLOCKED): Semasa pelaksanaan, benang mungkin memasuki keadaan menyekat kerana menunggu pelepasan sumber atau melepaskan sumber CPU secara aktif.
  4. Tukar keadaan menyekat (DISEKAT) kepada keadaan sedia (BOLEH DIJALANKAN): Apabila sumber yang ditunggu-tunggu benang dikeluarkan, atau masa menunggu tamat, ia akan menukar daripada keadaan menyekat kepada keadaan sedia.
  5. Menukar keadaan larian (RUNNING) kepada keadaan ditamatkan (DITERMINATED): Apabila kaedah run() thread selesai atau thread ditamatkan kerana pengecualian, thread akan bertukar daripada keadaan running kepada keadaan ditamatkan.

3. Contoh Kod

Berikut ialah contoh kod ringkas yang menunjukkan peraturan penukaran antara keadaan benang:

class MyThread extends Thread {
    
    @Override
    public void run() {
        try {
            Thread.sleep(1000);
            System.out.println("线程执行完毕");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

public class ThreadStateDemo {

    public static void main(String[] args) {
        MyThread thread = new MyThread();
        System.out.println("线程创建后状态:" + thread.getState());

        thread.start();
        System.out.println("调用start()方法后状态:" + thread.getState());

        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("等待500ms后状态:" + thread.getState());

        try {
            thread.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("调用join()方法后状态:" + thread.getState());
    }
}
Salin selepas log masuk

Jalankan kod di atas, anda boleh melihat output seperti berikut:

线程创建后状态:NEW
调用start()方法后状态:RUNNABLE
等待500ms后状态:RUNNABLE
线程执行完毕
调用join()方法后状态:TERMINATED
Salin selepas log masuk

Kod di atas mencipta warisan Objek Thread MyThread dari kelas Thread. Dalam benang utama, kita boleh melihat perubahan keadaan objek benang pada peringkat yang berbeza.

Dengan mempunyai pemahaman yang mendalam tentang lima keadaan benang Java dan peraturan penukarannya, kami dapat memahami dengan lebih baik prinsip multi-benang dan meningkatkan lagi keupayaan pengaturcaraan serentak. Pada masa yang sama, dalam proses pembangunan sebenar, pertimbangan dan pemprosesan status benang juga sangat penting. Saya harap artikel ini dapat membantu semua orang.

Atas ialah kandungan terperinci Penjelasan terperinci tentang lima keadaan benang Java dan peraturan peralihan keadaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Status sambungan dalam bersedia: Diputuskan sambungan, sebab: Pematuhan NIC Status sambungan dalam bersedia: Diputuskan sambungan, sebab: Pematuhan NIC Feb 19, 2024 pm 03:15 PM

"Status sambungan dalam mesej log peristiwa menunjukkan Tunggu Sedia: Diputuskan sambungan kerana pematuhan NIC. Ini bermakna sistem berada dalam mod siap sedia dan kad antara muka rangkaian (NIC) telah diputuskan sambungan. Walaupun ini biasanya isu rangkaian, tetapi ia boleh juga disebabkan oleh konflik perisian dan perkakasan Dalam perbincangan berikut, kita akan meneroka cara menyelesaikan masalah ini "Apakah punca sambungan siap sedia?" pematuhan NIC? Jika anda melihat mesej "ConnectivityStatusinStandby:DisConnected,Reason:NICCompliance" dalam Windows Event Viewer, ini menunjukkan bahawa mungkin terdapat masalah dengan NIC atau pengawal antara muka rangkaian anda. Keadaan ini biasanya

Bagaimana untuk menetapkan status Momo Bagaimana untuk menetapkan status Momo Mar 01, 2024 pm 12:10 PM

Momo, platform sosial yang terkenal, menyediakan pengguna dengan pelbagai perkhidmatan berfungsi untuk interaksi sosial harian mereka. Pada Momo, pengguna boleh berkongsi status hidup mereka dengan mudah, berkawan, berbual, dsb. Antaranya, fungsi status tetapan membolehkan pengguna menunjukkan mood dan status semasa mereka kepada orang lain, sekali gus menarik perhatian dan komunikasi lebih ramai orang. Jadi bagaimana untuk menetapkan status Momo anda sendiri Perkara berikut akan memberi anda pengenalan terperinci! Bagaimana untuk menetapkan status pada Momo? 1. Buka Momo, klik Lagi di penjuru kanan sebelah bawah, cari dan klik Status Harian. 2. Pilih status. 3. Status tetapan akan dipaparkan.

Bagaimana untuk menyemak status pelayan Bagaimana untuk menyemak status pelayan Oct 09, 2023 am 10:10 AM

Kaedah untuk melihat status pelayan termasuk alat baris arahan, alat antara muka grafik, alat pemantauan, fail log dan alat pengurusan jauh. Pengenalan terperinci: 1. Gunakan alat baris arahan Pada pelayan Linux atau Unix, anda boleh menggunakan alat baris arahan untuk melihat status pelayan 2. Gunakan alat antara muka grafik untuk sistem pengendalian pelayan dengan antara muka grafik disediakan oleh sistem Gunakan alat antara muka untuk melihat status pelayan 3. Gunakan alat pemantauan Anda boleh menggunakan alat pemantauan khas untuk memantau status pelayan, dsb.

Bagaimana untuk muncul di luar talian di WhatsApp pada telefon Android Bagaimana untuk muncul di luar talian di WhatsApp pada telefon Android Jul 14, 2023 am 08:21 AM

Ingin kelihatan "luar talian" atau tidak mahu berkongsi status semasa anda dengan rakan anda di WhatsApp? Terdapat helah yang mudah tetapi bijak untuk melakukan ini. Anda boleh melaraskan tetapan WhatsApp anda supaya status semasa anda (luar talian atau kali terakhir dilihat) tidak kelihatan kepada rakan anda atau orang lain di sana. Bagaimana untuk menunjukkan status luar talian pada bar status WhatsApp anda? Ini adalah proses yang sangat mudah dan diperkemas. Jadi, ikuti langkah di bawah sekarang. Langkah 1 – Buka WhatsApp pada telefon anda. Langkah 2 – Ketik ⋮ dan pilih untuk membuka Tetapan. Langkah 3 – Buka tetapan Privasi untuk mengaksesnya. Langkah 4 – Pada halaman privasi itu, buka tetapan "Dilihat & Dalam Talian Terakhir" untuk mengaksesnya. Langkah 5 – Tukar “Siapa yang boleh

Penjelasan terperinci tentang lima keadaan benang Java dan peraturan peralihan keadaan Penjelasan terperinci tentang lima keadaan benang Java dan peraturan peralihan keadaan Feb 19, 2024 pm 05:03 PM

Pemahaman mendalam tentang lima keadaan benang Java dan peraturan penukarannya 1. Pengenalan kepada lima keadaan benang Di Jawa, kitaran hayat benang boleh dibahagikan kepada lima keadaan berbeza, termasuk keadaan baharu (BARU), keadaan sedia (RUNNABLE), Status berjalan (RUNNING), status menyekat (BLOCKED) dan status penamatan (TERMINATED). Keadaan baharu (BARU): Apabila objek benang dibuat, ia berada dalam keadaan baharu. Pada ketika ini, objek benang telah memperuntukkan sumber yang mencukupi untuk melaksanakan tugas

Bagaimana untuk menyelesaikan pengecualian tamat masa gangguan benang Java (InterruptedTimeoutException) Bagaimana untuk menyelesaikan pengecualian tamat masa gangguan benang Java (InterruptedTimeoutException) Aug 22, 2023 am 09:51 AM

Cara menyelesaikan pengecualian tamat masa gangguan benang Java (InterruptedTimeoutException) Pengenalan: Dalam pengaturcaraan serentak, operasi gangguan benang adalah cara teknikal yang sangat biasa. Ia boleh digunakan untuk menamatkan utas yang tidak perlu dijalankan lagi, atau untuk bekerjasama antara berbilang utas. Walau bagaimanapun, kadangkala gangguan benang tidak selalu selesai dengan lancar, dan tamat masa gangguan mungkin berlaku. Artikel ini akan memperkenalkan cara menyelesaikan pengecualian tamat masa gangguan benang Java (InterruptedTimeout

Isu keselamatan benang dalam Java-java.lang.ThreadDeath Isu keselamatan benang dalam Java-java.lang.ThreadDeath Jun 25, 2023 am 08:15 AM

Java ialah bahasa pengaturcaraan merentas platform Kerana kelebihannya seperti mudah alih, kemudahan pembelajaran dan kemudahan penggunaan, ia telah menjadi pemain penting dalam bidang pengaturcaraan komputer. Walau bagaimanapun, keselamatan benang sentiasa menjadi isu penting dalam pengaturcaraan Java Isu keselamatan benang di Java mungkin tidak mudah untuk dikesan di permukaan, tetapi ia sering membawa kepada situasi yang mengganggu. Artikel ini akan meneroka isu keselamatan rangkaian dalam Java: java.lang.ThreadDeath. Isu keselamatan benang di Java dalam berbilang benang

Ketahui tentang status luar talian pencetak Ketahui tentang status luar talian pencetak Jan 04, 2024 am 10:29 AM

Apabila kita melihat pencetak berada di luar talian pada komputer kita, kadangkala kita mungkin tidak tahu maksudnya. Sebenarnya, ini bermakna pencetak tidak disambungkan Apakah maksud status luar talian pencetak? Jawapan: Status luar talian bermakna pencetak tidak disambungkan. Penyelesaian kepada status luar talian pencetak adalah dengan menulis semula kandungan tanpa Apabila menukar makna asal, anda perlu menukar bahasa kepada bahasa Cina, dan ayat asal tidak perlu dipaparkan 1. Pertama, pastikan pencetak anda dihidupkan secara normal, jika tidak, hidupkan ia. Gunakan kaedah lain: 1. Jika pencetak anda sudah dihidupkan, anda boleh masuk ke "Panel Kawalan" dahulu dan kemudian klik pilihan "Lihat Peranti dan Pencetak" 3. Seterusnya, pilih pencetak anda dan klik "Lihat apa yang sedang berlaku dicetak." "kebanyakan

See all articles