菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
376
0

yield

原创
05/13 14:22
阅读数 62283

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) {

		}

	}

}

  

 

发表评论

0/200
376 点赞
0 评论
收藏
为你推荐 换一批