Mỗi thread có một mức ưu tiên (priority). Ưu tiên được đại diện bởi một số từ 1 đến 10. Trong hầu hết các trường hợp, lịch trình của thread được sắp xếp theo thứ tự ưu tiên của chúng (được gọi là lập kế hoạch ưu tiên). Nhưng nó không được bảo đảm bởi vì nó phụ thuộc vào thông số kỹ thuật của JVM.
3 hằng số được định nghĩa trong lớp Thread
- public static int MIN_PRIORITY
- public static int NORM_PRIORITY
- public static int MAX_PRIORITY
Mức độ ưu tiên mặc định của một thread là 5 (NORM_PRIORITY). Giá trị của MIN_PRIORITY là 1 và giá trị MAX_PRIORITY là 10.
Ví dụ về mức ưu tiên của một Thread
class TestMultiPriority1 extends Thread { public void run() { System.out.println("running thread name is:" + Thread.currentThread().getName()); System.out.println("running thread priority is:" + Thread.currentThread().getPriority()); } public static void main(String args[]) { TestMultiPriority1 m1 = new TestMultiPriority1(); TestMultiPriority1 m2 = new TestMultiPriority1(); m1.setPriority(Thread.MIN_PRIORITY); m2.setPriority(Thread.MAX_PRIORITY); m1.start(); m2.start(); } }
Output:
running thread name is:Thread-1 running thread name is:Thread-0 running thread priority is:1 running thread priority is:10