How to Set priority to a Thread

By default all the threads created, get medium priority, unless a specific priority explicitly is set to the thread. Below are the priority related constants provided in Thread class.
Thread.MIN_PRIORITY (value is 0)
Thread.NORM_PRIORITY (value is 5, which is default priority)
Thread.MAX_PRIORITY (value is 10)

Any numeric value between 0 and 10 can be set as priority to a Thread. Below are priority related methods provided in Thread class
void setPriority(int priority);
int getPriority();

A thread with high priority gets allocated with more CPU time, compared to threads with relatively low priority threads. Hence a thread with high priority threads executes faster, compared to low priority threads.

			
class NewThread2 implements Runnable{
	String name; //name of Thread
	Thread t;
	
	NewThread2(String threadname,int priority){
		name=threadname;
		t = new Thread(this,name);
		System.out.println("New thread:"+t);
		t.start();
		t.setPriority(priority);
	}
	
	public void run(){
		try
		{
			for(int i=50;i>0;i--)
			{
			System.out.println(name+":"+i);
			//Thread.sleep(100);
			}
		}catch(Exception ie)
		{
		System.out.println("Exception:");
		ie.printStackTrace();
		}
		System.out.println(name+" Exiting");
	}
}


public class ThreadPriority {
	
	public static void main(String args[])
	{
	//start the threads

	NewThread2 nt2=new NewThread2("Two",Thread.MAX_PRIORITY);
	NewThread2 nt3=new NewThread2("Three",3/*Thread.NORM_PRIORITY*/);
	NewThread2 nt1=new NewThread2("One",Thread.MIN_PRIORITY);
		
	try
	{
	nt1.t.join();
	nt2.t.join();
	nt3.t.join();
	}catch(Exception ien)
	{
	System.out.println("main thread Interrupted");
	}
	
	
	System.out.println("Thread One Alive?"+nt1.t.isAlive());
	System.out.println("Thread Two Alive?"+nt2.t.isAlive());
	System.out.println("Thread Three Alive?"+nt3.t.isAlive());
	
	System.out.println("Main thread has exited");
	
	System.out.println("main thread Exiting");
	}

}