🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (178K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
In this guide, you will learn about the Thread yield() method in Java programming and how to use it with an example.
1. Thread yield() Method Overview
Definition:
The yield() method of the Thread class causes the currently executing thread object to temporarily pause and allow other threads to execute.
Syntax:
public static void yield()
Parameters:
- None.
Key Points:
- Thread.yield() is a static method of the Thread class.
- It's a hint to the thread scheduler that the current thread is willing to yield its current use of the CPU.
- The thread scheduler has full discretion on how to handle this hint, and the current thread might continue to run.
- It's generally used to improve the efficiency or fairness of an application by allowing other runnable threads to execute.
- The exact behavior of yield() is platform-dependent.
2. Thread yield() Method Example
public class ThreadYieldExample {
public static void main(String[] args) {
Thread producer = new Thread(() -> {
for (int i = 0; i < 5; i++) {
System.out.println("Producing value: " + i);
// Hint to the scheduler that this thread is ready to yield the CPU
Thread.yield();
}
});
Thread consumer = new Thread(() -> {
for (int i = 0; i < 5; i++) {
System.out.println("Consuming value: " + i);
}
});
producer.start();
consumer.start();
}
}
Output:
(Note: The output may vary on different runs and systems since the exact behavior of yield() is platform-dependent and non-deterministic.) Producing value: 0 Producing value: 1 ... Consuming value: 0 Consuming value: 1 ...
Explanation:
In the example, there are two threads: producer and consumer. The producer thread, after printing each value, gives a hint to the scheduler that it's willing to yield the CPU by calling Thread.yield().
The consumer thread just prints its values without any pause or yield. However, because the behavior of yield() is non-deterministic and platform-dependent, the exact interleaving of outputs from the producer and consumer threads may vary.
My Top and Bestseller Udemy Courses. The sale is going on with a 70 - 80% discount. The discount coupon has been added to each course below:
Build REST APIs with Spring Boot 4, Spring Security 7, and JWT
[NEW] Learn Apache Maven with IntelliJ IDEA and Java 25
ChatGPT + Generative AI + Prompt Engineering for Beginners
Spring 7 and Spring Boot 4 for Beginners (Includes 8 Projects)
Available in Udemy for Business
Building Real-Time REST APIs with Spring Boot - Blog App
Available in Udemy for Business
Building Microservices with Spring Boot and Spring Cloud
Available in Udemy for Business
Java Full-Stack Developer Course with Spring Boot and React JS
Available in Udemy for Business
Build 5 Spring Boot Projects with Java: Line-by-Line Coding
Testing Spring Boot Application with JUnit and Mockito
Available in Udemy for Business
Spring Boot Thymeleaf Real-Time Web Application - Blog App
Available in Udemy for Business
Master Spring Data JPA with Hibernate
Available in Udemy for Business
Spring Boot + Apache Kafka Course - The Practical Guide
Available in Udemy for Business
Comments
Post a Comment
Leave Comment