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的使用,但是线程调度器可能忽略此暗示,继续执行该线程,也可能调用别的线程。但是它不让出锁,对锁没作用。