线程的让位(Yield)
知识点详细说明
线程的让位(Yield)是指当前正在执行的线程主动让出CPU资源,使其他线程有机会运行。在Java中,通过Thread.yield()
方法实现,但实际效果依赖操作系统调度,并不保证其他线程一定优先执行。
1. yield()
方法的作用
- 提示调度器:当前线程愿意暂停执行,让同优先级或更高优先级的线程获得运行机会。
- 不释放锁:与
sleep()
不同,yield()
不会释放线程持有的锁。 - 状态转换:当前线程从运行状态(Running)回到就绪状态(Runnable)。
代码示例
public class YieldDemo {public static void main(String[] args) {Thread t1 = new Thread(() -> {for (int i = 0; i < 5; i++