线程礼让
线程礼让的几个特点:
- 礼让线程,让当前正在执行的线程暂停,但不阻塞
- 将线程从运行状态转为就绪状态
- 让cpu重新调度,礼让不一定成功!看cpu心情
下面通过代码实现一下线程礼让:
package org.javaboy;
/**
* @Author: bai
* @DateTime: 2020/6/6 21:12
*/
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() + "--begin");
Thread.yield(); //线程礼让
System.out.println(Thread.currentThread().getName() + "--end");
}
}
代码解释:首先我们要创建一个类实现 Runnable 接口,在接口中通过 Thread.yield() 方法来实现线程礼让这个小案例。
然后通过调用线程的 start() 方法来启动线程,根据上面我们所列出的线程礼让的特性。
执行结果有两种可能:
- 礼让成功的执行情况
- 礼让失败的执行情况