ในสถานการณ์ของมัลติเธรด ตัวกำหนดเวลาเธรดจะกำหนดเธรดให้กับกระบวนการเฉพาะตามลำดับความสำคัญ เธรด Java มาพร้อมกับลำดับความสำคัญที่กำหนดไว้ล่วงหน้า นอกจากนี้ Java virtualmachine ยังสามารถกำหนดลำดับความสำคัญให้กับเธรดหรือกำหนดโดยโปรแกรมเมอร์ได้อย่างชัดเจน ช่วงของค่าสำหรับลำดับความสำคัญของเธรดอยู่ระหว่าง 1 ถึง 10 (รวม) ตัวแปรคงที่สามตัวที่เกี่ยวข้องกับลำดับความสำคัญคือ -
-
MAX_PRIORITY - ลำดับความสำคัญสูงสุดที่เธรดมี ซึ่งค่าเริ่มต้นคือ 10
-
NORM_PRIORITY - ลำดับความสำคัญเริ่มต้นที่เธรดมีซึ่งมีค่าเริ่มต้นคือ 5
-
MIN_PRIORITY - ลำดับความสำคัญขั้นต่ำที่เธรดมี ซึ่งค่าเริ่มต้นคือ 1
เมธอด 'getPriority()' ใน Java ช่วยในการคืนลำดับความสำคัญของเธรดที่ผูกกับค่านั้น
เมธอด 'setPriority()' จะเปลี่ยนค่าลำดับความสำคัญของเธรดที่กำหนด มันส่ง theIllegalArgumentException เมื่อลำดับความสำคัญของเธรดน้อยกว่า 1 หรือมากกว่า 10
ตัวอย่าง
import java.lang.*; public class Demo extends Thread{ public void run(){ System.out.println("Now, inside the run method"); } public static void main(String[]args){ Demo my_thr_1 = new Demo(); Demo my_thr_2 = new Demo(); System.out.println("The thread priority of first thread is : " + my_thr_1.getPriority()); System.out.println("The thread priority of first thread is : " + my_thr_2.getPriority()); my_thr_1.setPriority(5); my_thr_2.setPriority(3); System.out.println("The thread priority of first thread is : " + my_thr_1.getPriority()); System.out.println("The thread priority of first thread is : " + my_thr_2.getPriority()); System.out.print(Thread.currentThread().getName()); System.out.println("The thread priority of main thread is : " + Thread.currentThread().getPriority()); Thread.currentThread().setPriority(10); System.out.println("The thread priority of main thread is : " + Thread.currentThread().getPriority()); } }
ผลลัพธ์
The thread priority of first thread is : 5 The thread priority of first thread is : 5 The thread priority of first thread is : 5 The thread priority of first thread is : 3 The thread priority of main thread is : 5 The thread priority of main thread is : 10
คลาสที่ชื่อ Demo สืบทอดมาจากคลาสพื้นฐาน Thread ฟังก์ชั่น 'run' ถูกกำหนดและกำหนดข้อความที่เกี่ยวข้อง ในฟังก์ชันหลัก มีการสร้างคลาสสาธิตสองอินสแตนซ์และพบลำดับความสำคัญได้โดยการเรียกใช้ฟังก์ชัน 'getPriority'
พวกเขาจะพิมพ์บนคอนโซล ถัดไป อินสแตนซ์การสาธิตจะถูกกำหนดลำดับความสำคัญโดยใช้ฟังก์ชัน 'setPriority' เอาต์พุตจะแสดงบนคอนโซล ชื่อของเธรดจะถูกพิมพ์บนหน้าจอด้วยความช่วยเหลือของฟังก์ชัน 'getName'