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

浙公网安备 33010602011771号