- yield() method causes "to pause current executing Thread for giving the chance of remaining waiting Threads of same priority".
- If all waiting Threads have the low priority or if there is no waiting Threads then the same Thread will be continued its execution.
- If several waiting Threads with same priority available then we can't expect exact which Thread will get chance for execution.
- The Thread which is yielded when it get chance once again for execution is depends on mercy of the Thread scheduler.
- public static native void yield();
| 
class MyThread
  extends Thread 
{ 
      public void run() 
      { 
                  for(int i=0;i<5;i++) 
                  { 
                              Thread.yield();  
System.out.println("child thread"); 
                  } 
      } 
} 
class ThreadYieldDemo 
{ 
      public static void main(String[] args) 
      { 
                  MyThread t=new MyThread();
  t.start(); 
                  for(int i=0;i<5;i++) 
                  { 
                              System.out.println("main
  thread"); 
                  } 
      } 
} | 
Output:  
main thread 
main thread 
main thread 
main thread 
main thread 
child thread
child thread
child thread
child thread
child thread
- In the above program child Thread always calling yield() method and hence main Thread will get the chance more number of times for execution.
- Hence the chance of completing the main Thread first is high.
Thanks..!!
 
  
No comments:
Post a Comment