【多线程】线程礼让 Thread.yield()
线程礼让 Thread.yield()
- 礼让线程,让当前正在执行的线程暂停,但不阻塞 ;
- 将线程从运行状态转为就绪状态 ;
- 让cpu重新调度,礼让不一定成功!看CPU心情。
代码示例:
/**
* @Description 测试线程礼让
* @Author hzx
* @Date 2022-03-26
*/
public class TestYield {
public static void main(String[] args) {
MyYield myYield = new MyYield();
new Thread(myYield,"a").start();
new Thread(myYield,"b").start();
}
}
class MyYield implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"线程开始执行");
Thread.yield(); //礼让
System.out.println(Thread.currentThread().getName()+"线程结束执行");
}
}
执行结果(礼让成功):
a线程开始执行
b线程开始执行
b线程结束执行
a线程结束执行
执行结果(礼让不成功):
a线程开始执行
a线程结束执行
b线程开始执行
b线程结束执行