Rumah  >  Artikel  >  Java  >  Kitaran hayat benang di Jawa

Kitaran hayat benang di Jawa

WBOY
WBOYasal
2024-08-30 16:19:57507semak imbas

Sebuah benang mengalami pelbagai fasa dalam kitaran hayat. Seperti, benang datang ke dunia, bermula, berjalan, dan selepas itu berlalu pergi. Gambar rajah seterusnya menerangkan kitaran hayat lengkap benang.

Kitaran hayat benang di Jawa

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

  • Pembina Benang menghasilkan benang melalui keadaan baharu.
  • Memanggil memulakan kaedah dalam Thread boleh membuatnya melalui keadaan boleh jalan.
  • Penjadual Thread berkenaan Java menjalankan utas itu apabila pemproses menerimanya.
  • Apabila urutan pergi ke keadaan tersekat, ia akan berjalan semula kerana ia kembali kepada keadaan boleh jalan.
  • Jika kaedah tunggu dirujuk sebagai urutan akan pergi ke menunggu keadaan, ia akan pergi ke keadaan boleh jalan sejurus selepas ia menjadi pemberitahuan sepanjang Maklum dan kaedah maklumkan semua.
  • Benang berakhir sebaik sahaja kaedah larian ditamatkan.

Apakah Benang?

Urut ditakrifkan pada peringkat Sistem Pengendalian. Dan bahasa Java, serta semua bahasa lain, menggunakan memanfaatkan perkhidmatan yang diberikan oleh Sistem Pengendalian. Dari sudut pandangan pembangun, utas ialah satu set arahan yang akan kami tulis aplikasi kami dan laksanakan dengan cara tertentu. Aplikasi itu sendiri boleh terdiri daripada beberapa utas. Benang yang berbeza boleh dilaksanakan pada masa yang sama. JVM (Java Virtual Machine) berfungsi dengan beberapa utas. Terdapat benang untuk kutipan sampah. Terdapat urutan untuk Pengkompil Just in Time dan urutan teknikal lain.

Keadaan  Kitaran Hayat Benang di Jawa

Di bawah ialah Keadaan Kitaran Hayat Benang yang berbeza di Jawa:

1. Baharu: Urutan baharu memulakan kitaran hayatnya dalam keadaan baharu. Ia terus berada dengan keadaan ini sebelum program memulakan utas. Selain itu, ia dikenali sebagai urutan yang dicipta.

2. Runnable: Selepas benang yang baru dilahirkan boleh dimulakan, thread bertukar menjadi runnable. Urutan dengan keadaan ini dianggap melaksanakan prosesnya.

3. Menunggu: Adakalanya, urutan peralihan ke arah menunggu di sekitar negeri walaupun urutan sedang menunggu urutan lain untuk melaksanakan aktiviti. Peralihan benang kepada keadaan boleh jalan hanya jika utas tambahan menunjukkan urutan menunggu untuk terus berprestasi.

4. Menunggu Bermasa: Benang boleh jalan boleh dengan mudah masa tertentu menunggu keadaan untuk mendapatkan selang masa tertentu. Urutan dengan peralihan keadaan ini kembali kepada keadaan boleh jalan sebaik sahaja selang titik tamat tempoh atau jika acara yang benar-benar ditunggu berlaku.

5. Ditamatkan: Urutan boleh jalan masuk ke keadaan ditamatkan kerana ia menyelesaikan tugasnya atau ditamatkan.

Bagaimana untuk Mencipta Benang dalam Java?

Cara paling asas untuk mencipta benang dalam Java ialah menggunakan Corak Runnable. Pertama, anda perlu mencipta contoh antara muka Runnable, yang sangat mudah; hanya ada satu kaedah untuk dilaksanakan. Kemudian kami menyampaikan contoh ini kepada pembina kelas Thread. Dan kemudian, kami hanya memanggil kaedah mula() bagi objek utas ini yang dicipta untuk melancarkan utas baharu yang akan menjalankan tugas yang dibungkus dalam objek Runnable kami.

Kitaran hayat benang di Jawa

Maka mula-mula, kami mencipta contoh Runnable.  Terdapat hanya satu kaedah untuk dilaksanakan, yang dipanggil kaedah run(). Ini ialah corak Java 7 untuk melakukan itu, dengan contoh kelas tanpa nama. Tetapi kita juga boleh menggunakan ungkapan lambda untuk melaksanakan Runnable kerana hanya terdapat satu kaedah dalam antara muka Runnable.

Kitaran hayat benang di Jawa

Mari kita buat urutan pada contoh yang sangat mudah.

Kami akan melihat apa yang boleh berlaku dengan keadaan perlumbaan iaitu dengan kod tidak segerak yang harus disegerakkan dan kami akan membetulkan kod kami menggunakan penyegerakan. Contoh pertama ini sangat mudah; ia sangat asas. Ia hanya tentang mencipta tugasan.

Kitaran hayat benang di Jawa

Output:

Kitaran hayat benang di Jawa

Tugas ialah contoh antara muka Runnable, mari kita panggil ia runnable dan kita boleh melaksanakan antara muka ini menggunakan ungkapan lambda. Tugasan ini diberikan kepada utas baharu dan dilaksanakan dalam konteks utas ini. Jadi kami hanya akan mencetak nama benang yang menjalankan tugas ini. Saya menjalankan dalam… Thread.currentThread() ialah kaedah statik kelas Thread yang mengembalikan utas menjalankan tugas semasa. Dan kita hanya perlu memanggil getName() pada objek thread ini untuk mengembalikan nama thread, kemudian selepas kita mencipta contoh Thread t = Thread baru.  Melepasi runnable ini sebagai parameter. Jadi benang ini akan melaksanakan sekeping kod ini. Dan untuk melancarkannya. t.start() ini ialah kaedah start() yang perlu kita panggil. Kami juga boleh memberikan nama eksplisit untuk Thread ini menggunakan t.setName("My thread"). Dan kini kita boleh melaksanakan kod ini. Sekarang bukannya kaedah panggilan mula(), kami memanggil kaedah run() dan jika kami menjalankan kod ini, masalahnya ialah tugas itu dilaksanakan dengan betul, tetapi ia tidak dilaksanakan dalam utas yang telah kami cipta. Ia dilaksanakan dalam utas utama, iaitu utas melaksanakan kaedah utama. Jadi kaedah run() ini tidak boleh dipanggil jika kita ingin melancarkan benang baharu.

Kitaran hayat benang di Jawa

Output:

Kitaran hayat benang di Jawa

Kaedah Kitaran Hidup Benang di Jawa

Kaedah yang diterangkan dengan hanya Thread dibentangkan dalam Jadual.

Data Types Thread Method Names
String

getName()

Return this thread’s name

int get priority()

Returns the thread’s priority

boolean isAlive()

Tests if this thread is still running

void join()

Waits for this thread to die (terminate)

void run()

Whenever this thread was built utilizing an individual Runnable object, which usually Runnable object’s run method is called, this method will do nothing and returns. Whenever thread class can be extended and run() method is over-ridden during sub-class, then an over-ridden run() method is called.

void setName(String name)

Alterations the name with this thread to become comparable to the argument name.

static void

 

 

sleep(long millis) throws Interrupted/Exception
It causes the presently performing thread to rest for
the required quantity of milliseconds.
static void sleep(long millis, int Nanos) throws InterruptedException

It causes the presently performing thread to sleep (cease execution) for the required quantity of milliseconds as well as the particular quantity of nanoseconds.

void start()

Triggers these threads to start execution; the Java Virtual Machine calls the run method of that thread.

static void yield()

Triggers the presently thread object to pause and permit additional threads to execute briefly.

static Thread currentThread()

Returns a mention of the presently executing thread object.

Jenis Data

Nama Kaedah Benang
    String

  • getName()
  • Kembalikan nama urutan ini

  • int
  • dapatkan keutamaan()
  • Mengembalikan keutamaan urutan
    boolean isAlive() Menguji jika urutan ini masih berjalan
    kosong sertai() Tunggu thread ini mati (tamat)
    kosong run() Setiap kali urutan ini dibina menggunakan objek Runnable individu, yang biasanya kaedah runnable objek Runnable dipanggil, kaedah ini tidak akan melakukan apa-apa dan kembali. Apabila kelas thread boleh dilanjutkan dan kaedah run() over-ridden semasa sub-class, maka kaedah run() over-ridden dipanggil.
    kosong setName(Nama rentetan) Mengubah nama dengan urutan ini menjadi setanding dengan nama argumen.
    kosong statik     tidur(millis panjang) lontaran Terganggu/Pengecualian
    Ia menyebabkan utas yang sedang berfungsi untuk berehat selama
    kuantiti milisaat yang diperlukan.
    kosong statik tidur(millis panjang, int Nano) melempar InterruptedException Ia menyebabkan utas yang sedang berfungsi untuk tidur (berhenti pelaksanaan) untuk kuantiti milisaat yang diperlukan serta kuantiti nano saat tertentu.
    kosong mula() Cetus urutan ini untuk memulakan pelaksanaan; Mesin Maya Java memanggil kaedah jalankan benang itu.
    kosong statik hasil() Mencetuskan objek utas pada masa ini untuk menjeda dan membenarkan urutan tambahan untuk dilaksanakan secara ringkas.
    Benang statik currentThread() Mengembalikan sebutan objek urutan yang sedang dilaksanakan.
    Kesimpulan Mudah untuk mula menggunakan benang, amat sukar untuk difahami. Merancang kelas yang mengandungi kaedah yang boleh menjadi benang selamat adalah mencabar. Baca: JavaDoc untuk mendapatkan kelas java.lang.Thread

    Atas ialah kandungan terperinci Kitaran hayat benang di Jawa. 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
    Artikel sebelumnya:Struts di JawaArtikel seterusnya:Struts di Jawa