![java package tutorial](/java/lang/images/java.jpg)
- Java.lang Package classes
- Java.lang - Home
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang Package extras
- Java.lang - Interfaces
- Java.lang - Errors
- Java.lang - Exceptions
- Java.lang Package Useful Resources
- Java.lang - Useful Resources
- Java.lang - Discussion
Java Thread yield() Method
Description
The Java Thread yield() method causes the currently executing thread object to temporarily pause and allow other threads to execute.
Declaration
Following is the declaration for java.lang.Thread.yield() method
public static void yield()
Parameters
NA
Return Value
This method does not return any value.
Exception
Example: Pausing Currently Executing Thread
The following example shows the usage of java.lang.Thread.yield() method. In this program, we've created a thread class ThreadDemo by implementing Runnable interface. In constructor, we've created a new Thread and started using start() method.
In run() method, we started a for loop where for 5th iteration, using yield() method, currently executing thread is paused. Once run() method is over, a message is printed with current thread details. In main() method, three threads of ThreadDemo class are created.
package com.tutorialspoint; public class ThreadDemo implements Runnable { Thread t; ThreadDemo(String str) { t = new Thread(this, str); // this will call run() function t.start(); } public void run() { for (int i = 0; i < 5; i++) { // yields control to another thread every 5 iterations if ((i % 5) == 0) { System.out.println(Thread.currentThread().getName() + " yielding control..."); /* causes the currently executing thread object to temporarily pause and allow other threads to execute */ Thread.yield(); } } System.out.println(Thread.currentThread().getName() + " has finished executing."); } public static void main(String[] args) { new ThreadDemo("Thread 1"); new ThreadDemo("Thread 2"); new ThreadDemo("Thread 3"); } }
Output
Let us compile and run the above program, this will produce the following result −
Thread 1 yielding control... Thread 2 yielding control... Thread 3 yielding control... Thread 3 has finished executing. Thread 1 has finished executing. Thread 2 has finished executing.