线程礼让

  • 线程礼让(yield)

    • 礼让线程,让当前正在执行的线程暂停,但不阻塞
    • 将线程从运行状态转为就绪状态
    • 让cpu重新调度,礼让不一定成功!由cpu决定
ublic class TestYield {
    public static void main(String[] args) {
        MyYield myYield = new MyYield();
        new Thread(myYield,"线程1").start();
        //进行礼让,让另一个线程跑,可能不礼让成功
        new Thread(myYield,"线程2").start();
    }
}

class MyYield implements Runnable{

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

//礼让成功
线程1线程开始执行!
线程2线程开始执行!
线程1线程停止执行!
线程2线程停止执行!
    
//礼让失败
线程1线程开始执行!
线程1线程停止执行!
线程2线程开始执行!
线程2线程停止执行!