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