5.3、线程礼让

2021-12-07  本文已影响0人  金石_832e
  • 让当前正在执行的线程进入暂停状态,但不阻塞
  • 将线程从运行状态转为就绪状态
  • 让CPU重新调度,礼让但不一定成功!
package com.example.demo.thread;

/**
 * @projectName: demo
 * @package: com.example.demo.thread
 * @className: TestYiedld
 * @author:
 * @description: 测试两个线程
 * @date: 2021/11/26 18:25
 */
public class TestYiedld {
    public static void main(String[] args) {
        MyYield myYield1 = new MyYield();
        MyYield myYield2 = new MyYield();
        new Thread(myYield1,"线程1").start();
        new Thread(myYield2,"线程2").start();
    }
}

class MyYield implements Runnable{

    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+"线程启动!");
        Thread.yield();
        System.out.println(Thread.currentThread().getName()+"线程停止!");
    }
}

去掉Thread.yield();
一定是下面的结果

image.png

礼让成功的结果(资源礼让后cpu分给1)

image.png

礼让成功的结果(资源礼让后cpu分给2)

image.png

礼让不成功的结果

image.png
上一篇 下一篇

猜你喜欢

热点阅读