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.Terdapat tiga pembolehubah utama pra-simpan dalam JAVA dalam bentuk makro dijelaskan di bawah-
Beberapa fungsi yang dikaitkan dengan mendapatkan dan menetapkan keutamaan ialah:
Berikut ialah contoh keutamaan java thread ialah:
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:
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:
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)
Terdapat banyak kelebihan yang berkaitan dengan multithreading dan memberikan keutamaan kepada thread yang disenaraikan di bawah:
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!