【多线程】线程礼让 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线程结束执行
posted @ 2022-03-26 23:36  HZX↑  阅读(23)  评论(0编辑  收藏  举报