CodesJava

Easy learning with example program codes

Difference between Thread.yield() and Thread.sleep() methods

yield():

Causes the currently executing thread object to temporarily pause for giving a chance to the remaining waiting threads of the same priority to execute. If no such thread than same thread will continue its execution.

If multiple threads of same priority are in waiting state then it depends on thread scheduler which thread have to be executed. The thread which stops executing will be in the runnable state and it will also depends upon thread scheduler when it will get chance.

Syntax: public static void yield().

Example:

ThreadYieldExample.java

/**
 * This program is used to show the yield() method example.
 * @author codesjava
 */
class Test extends Thread{
	public void run(){
		for(int i=1;i<=5;i++){  
		   try{  
		    Thread.yield();  
		   }catch(Exception e){
			   System.out.println(e);
		   }  
		   System.out.println(i);  
		  }  
	}
}
 
public class ThreadYieldExample {
	public static void main(String args[]){
		//creating thread.
		Test thrd1 = new Test();
		Test thrd2 = new Test();
		Test thrd3 = new Test();
 
		//start threads.
		thrd1.start();  	  
		thrd2.start();
		thrd3.start();
	}
}

Output:

1
2 
3
4
5
1
2
3
4
1
2
3
4
5
5

Download this example.

sleep(long millis):

Causes the currently executing thread to sleep for the specified time as per our requirement. The thread will be in sleeping state and will enter in runnable state if:

  • Specified time expires.
  • Sleeping thread interrupted.

A thread can interrupt the sleeping or waiting thread by using interrupt method of Thread class. Interrupt method will be called by main thread.

Syntax: public static void sleep(long millis) .

Example:

ThreadSleepExample.java

/**
 * This program is used to show the sleep() method example.
 * @author codesjava
 */
class Test extends Thread{
	public void run(){
		for(int i=1;i<=5;i++){  
		   try{  
		    Thread.sleep(600);  
		   }catch(Exception e){
			   System.out.println(e);
		   }  
		   System.out.println(i);  
		  }  
	}
}
 
public class ThreadSleepExample {
	public static void main(String args[]){
		//creating thread.
		Test thrd1 = new Test();
		Test thrd2 = new Test();
		Test thrd3 = new Test();
 
		//start threads.
		thrd1.start();  	  
		thrd2.start();
		thrd3.start();
	}
}

Output:

1
1
1
2
2
2
3
3
3
4
4
4
5
5
5

Download this example.
 
Next Topic: Deadlock in java with example.
Previous Topic: Can we call run method directly?

Please follow and like us:
error








Copyright © 2019 CodesJava DMCA.com Protection Status