yield的概念及使用姿势

mac2025-08-05  14

概念:

  当调用Thread.yield方法时,会给线程调度器一个当前线程愿意让出CPU使用的暗示,但是线程调度器可能会忽略这个暗示。

 

代码演示:

public class YieldDemo implements Runnable{ @Override public void run() { for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + i); if (i == 5) { Thread.yield(); } } } public static void main(String[] args){ final Thread t1 = new Thread(new YieldDemo(),"A"); final Thread t2 = new Thread(new YieldDemo(),"B"); t1.start(); t2.start(); } }

分别有以下两种情况输出:

第一种情况:

A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,

第二种情况:

A0,A1,A2,A3,A4,A5,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,A6,A7,A8,A9,

 

最新回复(0)