package com.mall.controllor.alene;
/**
* Created by 60341 on 2020/3/18.
*/
public class YieldDemo {
//Thread.yield();暗示线程调度器该线程让出cpu。但是它对锁没影响
public static void main(String[] args) {
Runnable yieldTask = new Runnable() {
@Override
public void run() {
for (int i=1; i<=10;i++){
System.out.println(Thread.currentThread().getName()+i);
if (i==5){
Thread.yield();//暗示线程调度器该线程让出cpu。
}
}
}
};
Thread t1 = new Thread(yieldTask,"A");
Thread t2 = new Thread(yieldTask,"B");
t1.start();
t2.start();
/*输出
A1
B1
A2
B2
A3
B3
A4
B4
A5
B5
A6
B6
A7
B7
A8
B8
B9
A9
B10
A10*/
}
}
Thread.yield():给线程调度器一个暗示,暗示当前线程愿意让出CPU的使用,但是线程调度器可能忽略此暗示,继续执行该线程,也可能调用别的线程。但是它不让出锁,对锁没作用。