背景
多线程的线程礼让。
实现
注:
- 礼让线程,让当前正在执行的线程暂停,但不阻塞;
- 将线程从运行状态转为就绪状态;
- 礼让的本质是让CPU重新调度,因此礼让的结果仍然是随机的。并不是把CPU的时间交付给另外的线程。
代码
package com.aac;
//线程礼让
//线程礼让不一定成功
public class ThreadYield {
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() + "线程停止执行...");
}
}
效果
总结
礼让是让CPU重新调度的机制,并不是把CPU的时间交付给另外的线程。因此礼让的结果仍然是随机的。