Rumah  >  Artikel  >  Java  >  Keutamaan Benang Java

Keutamaan Benang Java

WBOY
WBOYasal
2024-08-30 16:02:56371semak imbas

Diistilahkan sebagai "unit pemprosesan terkecil", Thread ialah subproses ringan yang diberikan dengan beberapa kerja yang perlu dilakukan. Benang berkongsi slot memori yang sama yang diberikan kepada mereka dan bebas antara satu sama lain, sekali gus menggalakkan multitasking. Tetapi apabila berbilang benang berjalan pada slot memori yang dikongsi, maka pasti akan berlaku persaingan pada sumber tersebut. Untuk mengelakkan persaingan ini supaya daya pengeluaran yang tinggi dapat dicapai, konsep mengutamakan benang telah diperkenalkan. Ia mempunyai kepentingan yang besar apabila pelbagai tugas dijalankan pada sistem yang sama. "Penjadual benang melakukan kerja menetapkan urutan pelaksanaan mengikut keutamaan".

Mulakan Kursus Pembangunan Perisian Percuma Anda

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

JVM (mesin maya JAVA) membuat keputusan untuk mengutamakan urutan secara lalai atau oleh pengaturcara secara eksplisit. Darjah keutamaan berjulat antara 1 hingga 10, 10 diberikan apabila kami ingin memberikan keutamaan tertinggi pada urutan. Perubahan suis konteks membantu dalam peralihan daripada utas 1 kepada utas 2 dan seterusnya mengikut urutan keutamaan.

Nota: Mungkin terdapat kemungkinan dua atau lebih urutan ditetapkan dengan keutamaan yang sama, maka pelaksanaannya bergantung pada sistem pengendalian. Sebagai contoh, Windows menggunakan algoritma round-robin untuk mengendalikan kes ini.

Pembolehubah Keutamaan Benang Java

Terdapat tiga pembolehubah utama pra-simpan dalam JAVA dalam bentuk makro dijelaskan di bawah-

  • Public Static int MIN_PRIORITY: Ini ialah pembolehubah statik dengan pengubah suai akses daripada jenis "awam". Pembolehubah ini ditetapkan dengan nilai 1. Ini adalah untuk menetapkan urutan dengan keutamaan terendah.
  • Public Static int NORM_PRIORITY: Ini ialah pembolehubah statik dengan pengubah suai akses daripada jenis "awam". Pembolehubah ini diberikan dengan nilai 5. Ini adalah untuk menetapkan benang dengan keutamaan biasa. Ia adalah keutamaan lalai apabila keutamaan tidak diberikan secara eksplisit oleh pembangun.
  • Public Static int MAX_PRIORITY: Ini ialah pembolehubah statik dengan pengubah suai akses jenis "awam". Pembolehubah ini ditetapkan dengan nilai 10. Ini adalah untuk menetapkan urutan dengan keutamaan tertinggi.

Beberapa fungsi yang dikaitkan dengan mendapatkan dan menetapkan keutamaan ialah:

  • Public Final int getPriority (): Fungsi ini digunakan untuk mendapatkan keutamaan mana-mana utas yang diminta. Fungsi ini mengembalikan integer kerana jenis pulangannya ialah "int". Integer boleh berjulat antara 1 hingga 10. Fungsi ini adalah awam dan muktamad.
  • Public Final void setPriority (int newPriority): Fungsi ini digunakan untuk menetapkan keutamaan mana-mana urutan yang diminta. Fungsi ini mengambil integer sebagai parameter, dan perkara yang sama disebut dalam prototaip parameter dalam definisi fungsi. Integer parameter boleh berjulat antara 1 hingga 10. Fungsi ini adalah awam dan muktamad.

Contoh Keutamaan Benang Java

Berikut ialah contoh keutamaan java thread ialah:

Contoh #1

Di bawah ialah beberapa contoh yang menunjukkan konsep keutamaan benang menggunakan pembolehubah yang telah ditentukan di atas dan fungsi sedia ada yang tersedia dalam JAVA.

Kod:

public class test extends Thread{
public void run (){
System.out.println ( "The name of thread running curremtly is :"+Thread.currentThread ().getName ());
System.out.println ( "The priority od thread running currently is:"+Thread.currentThread ().getPriority ());
}
public static void main (String args[]){
test t1=new test ();
test t2=new test ();
test t3=new test ();
t1.setPriority (Thread.MIN_PRIORITY);
t2.setPriority (Thread.MAX_PRIORITY);
t3.setPriority (Thread.NORM_PRIORITY);
t1.start ();
t2.start ();
t3.start ();
}
}

Output:

Keutamaan Benang Java

Contoh #2

Di bawah ialah contoh definisi dan pencetakan keutamaan yang ditentukan pengguna.

Kod:

public class test2 extends Thread
{
public void run ()
{
System.out.println ( " The control is under run function now...");
}
public static void main (String args[])
{
// Here we are creating threads using the constructors.
test2 t1=new test2 ();
test2 t2=new test2 ();
// setpriority () function is used below along with the parameter to set the prioirity.
t1.setPriority (2);
t2.setPriority (9);
// Here we are coding on how to display output strings.
System.out.println ( " The priority assigned to thread t1 is: " + t1.getPriority ());
System.out.println ( "The priority assigned to thread t2 is: " + t2.getPriority ());
// the run () function is defined above will be called via start () function and print the strinf which is there in it.
t1.start ();
}
}

Output:

Keutamaan Benang Java

Nota: Keutamaan hendaklah berada di bawah julat 1 hingga 10. Sekiranya keutamaan berada di luar julat ini, maka pengkompil akan membuang ralat di bawah. Saya mendapat ralat ini apabila 13 diberi keutamaan di tempat 9 semasa menetapkan keutamaan thread t2 menggunakan fungsi setPriority ().

Pengecualian:

Pengecualian dalam utas “utama” java.lang.IllegalArgumentException

di java.base/java.lang.Thread.setPriority (Thread.java:1141)

di test2.main (test2.java:14)

Kelebihan Keutamaan Benang Java

Terdapat banyak kelebihan yang berkaitan dengan multithreading dan memberikan keutamaan kepada thread yang disenaraikan di bawah:

  • Ia membolehkan berbilang operasi dilakukan secara serentak dalam sistem, bersama-sama dengan keutamaan utas. Sebagai contoh, pengguna sedang melayari internet tetapi tiba-tiba mengganggu sistem kerana perisian baru telah dipasang. Dalam kes ini, keutamaan diberikan untuk memulakan semula sistem melalui melayari internet.
  • Benang JAVA mewarisi keutamaannya daripada bunga induk jika pengaturcara tidak mentakrifkan keutamaan utas secara eksplisit. Terdapat pengekalan keutamaan memintas keutamaan dalam benang hiliran dan mengekalkan simetri. Ia memudahkan untuk nyahpepijat atur cara oleh pengaturcara.
  • Ia menjadikan kod lebih ringkas dengan itu mudah diselenggara.
  • Ia menjadikan kerja penukaran konteks lebih mudah dengan memberikan keutamaan.

Kesimpulan

Ini adalah salah satu cara yang digunakan secara meluas dan cekap untuk mengendalikan berbilang tugas dalam sistem yang sama. Memandangkan benang berkongsi ingatan, cara yang cekap ingatan ini juga. Kita boleh mendapatkan beberapa utas berjalan dalam sistem, tetapi itu mungkin mengelirukan pemproses yang mana satu untuk dipilih dahulu. Isu ini telah diselesaikan dengan bantuan memberikan keutamaan kepada urutan. Benang itu terus berjalan sehingga ia selesai atau diganggu oleh benang yang mempunyai keutamaan yang lebih tinggi. Fungsi ini berfungsi rapat dengan sistem pengendalian. Menyediakan dokumen perkataan bersama-sama dengan melayari internet dengan muzik tidak begitu cekap sehinggalah munculnya konsep ajaib multi-threading.

Atas ialah kandungan terperinci Keutamaan 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