In java, when two or more than two thread is computing for CPU time, every thread is assigned a priority value. A highest Priority thread get preference over lower priority thread.
All Java threads have a priority in the range 1-10.
Top priority is 10, lowest priority is 1.Normal priority ie. priority by default is 5.
Thread.MIN_PRIORITY – 1 minimum thread priority
Thread.MAX_PRIORITY – 10 maximum thread priority
Thread.NORM_PRIORITY – 5 maximum thread priority
Whenever a new Java thread is created it has the same priority as the thread which created it.
Thread priority can be changed by the setPriority() method.
Example: Write a program to demonstrate the thread priority.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | class ThreadPriority extends Thread { public void run(){ for(int i=1;i<=5;i++){ try{ System.out.println("Thread "+Thread.currentThread().getName()+ " priority "+Thread.currentThread().getPriority()); Thread.sleep(1000); }catch(InterruptedException e){ System.out.println("InterruptedException "+e.getMessage()); } } } } public class ThreadPriorityMain{ public static void main(String s[]){ ThreadPriority t1=new ThreadPriority(); ThreadPriority t2=new ThreadPriority(); ThreadPriority t3=new ThreadPriority(); t1.setName("Thread 1"); t2.setName("Thread 2"); t3.setName("Thread 3"); t2.setPriority(6); t3.setPriority(Thread.MAX_PRIORITY); t1.start(); t2.start(); t3.start (); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Thread Thread 3 priority 10 Thread Thread 1 priority 5 Thread Thread 2 priority 6 Thread Thread 3 priority 10 Thread Thread 2 priority 6 Thread Thread 1 priority 5 Thread Thread 3 priority 10 Thread Thread 2 priority 6 Thread Thread 1 priority 5 Thread Thread 3 priority 10 Thread Thread 2 priority 6 Thread Thread 1 priority 5 Thread Thread 3 priority 10 Thread Thread 2 priority 6 Thread Thread 1 priority 5 |