Thread Priority in Java with example

Thread Priority in Java with example

In this article, we will see about Thread Priority in Java with example. In multithreading, each thread has some priority. Even we write a simple hello world program, we have default thread (main thread) has default priority 5. If we create user defined threads JVM will assign default priority i.e 5 for these threads too.

Let’s see an example.

package threadpriority;



class MyThread1 extends Thread {
	public void run() {
		System.out.println("Name of current thread is  " + Thread.currentThread().getName());
		System.out.println("Priority of current thread is  " + Thread.currentThread().getPriority());

	}
}

public class ThreadPriorityExample {
	public static void main(String[] args) {
		MyThread1 thread1 = new MyThread1();
		thread1.start();
		System.out.println("Name of current thread is  " + Thread.currentThread().getName());
		System.out.println("Priority of current thread is  " + Thread.currentThread().getPriority());
	}
}

Output is –

Name of current thread is main
Priority of current thread is 5
Name of current thread is Thread-0
Priority of current thread is 5

Range of thread priority – The range of thread priority is between 1 to 10. There are three constant has been defined in thread class MIN_PRIORITY, NORM_PRIORITY and MAX_PRIORITY as below.

public final static int MIN_PRIORITY = 1;
public final static int NORM_PRIORITY = 5;
public final static int MAX_PRIORITY = 10;

Example –

package threadpriority;

public class ThreadPriorityExample {
	public static void main(String[] args) {
		System.out.println("Minimum priority of thread is "+Thread.MIN_PRIORITY);
		System.out.println("Normal priority of thread is "+Thread.NORM_PRIORITY);
		System.out.println("Maximum priority of thread is "+Thread.MAX_PRIORITY);
	}
}

Output is –

Minimum priority of thread is 1
Normal priority of thread is 5
Maximum priority of thread is 10

Setting a thread priority – We can set thread priority using setPriority() method.


package threadpriority;

public class ThreadPriorityExample {
	public static void main(String[] args) {
		System.out.println("Name of thread is :- "+Thread.currentThread().getName());
		System.out.println("Default priority of thread is :- "+Thread.currentThread().getPriority());
		System.out.println("----After setting priority----");
		Thread.currentThread().setPriority(8);
		System.out.println("Name of thread is :- "+Thread.currentThread().getName());
		System.out.println("Default priority of thread is :- "+Thread.currentThread().getPriority());
		
	}
}

Output is –


Name of thread is :- main
Default priority of thread is :- 5
—-After setting priority—-
Name of thread is :- main
Default priority of thread is :- 8

We can also define priority for user defined threads.

package threadpriority;



class MyThread1 extends Thread {
	public void run() {
		System.out.println(Thread.currentThread().getPriority());
	}
}

public class ThreadPriorityExample {
	public static void main(String[] args) {
		MyThread1 thread1 = new MyThread1();
		MyThread1 thread2 = new MyThread1();
		MyThread1 thread3 = new MyThread1();
		thread1.setPriority(6);
		thread2.setPriority(7);
		thread3.setPriority(8);
		thread1.start();
		thread2.start();
		thread3.start();
	}
}

Output is –

6
7
8

The sequence of output may vary. Since we are doing thread1.start(), thread2.start() and thread3.start() , run() method will call three times.

That’s all about Thread Priority in Java with example.

You may like.

Thread class docs.