yield

yield

public static void yield()
对调度程序的一个暗示,即当前线程愿意产生当前使用的处理器。 调度程序可以自由地忽略这个提示。

产量是一种启发式尝试,以改善否则会过度利用CPU的线程之间的相对进度。 其使用应与详细的分析和基准相结合,以确保其具有预期的效果。

很少使用这种方法。 它可能对调试或测试有用,可能有助于根据种族条件重现错误。 在设计并发控制结构(例如java.util.concurrent.locks包中的并行控制结构)时也可能有用。

package com.cntaiping.tpi.claimplat.serviceapi.Test2;

public class Demo {

	public static void main(String[] args) {
		Thread t1 = new Thread(() -> {
			try {
				for (int i = 0; i < 10; i++) {
					if (i == 5) {
						Thread currentThread = Thread.currentThread();
						currentThread.yield();
					}
					System.out.println("t1---------------" + i);
				}
			} catch (Exception e) {
			}
		});

		Thread t2 = new Thread(() -> {
			try {
				for (int i = 0; i < 10; i++) {
					System.out.println("t2---------------" + i);
				}
			} catch (Exception e) {
			}
		});

		try {
			t1.start();
			t2.start();
		} catch (Exception e) {

		}

	}

}

  

 

posted @ 2021-05-11 14:59  步江伍德  阅读(232)  评论(0)    收藏  举报