import java.lang.Thread;//让出CPU,给其他进程执行机会public class ThreadTest6_Yield{public static void main(String[] args){MyThread3 t1 = new MyThread3("A-----");MyThread3 t2 = new MyThread3("B=====");t1.start();t2.start();}}class MyThread3 extends Thread {MyThread3(String s){super(s);}public void run(){for(int i=1;i<=100;i++){System.out.println(getName()+" : "+i);if(i%10==0)yield();}}}这段代码运行的结果为什么不是10个A和10个B交叉输出呢?
2 回答

慕丝7291255
TA贡献1859条经验 获得超6个赞
Thread.yield( )方法:
使当前线程从执行状态(运行状态)变为可执行态(就绪状态)。cpu会从众多的可执行态里选择,也就是说,刚刚的那个线程还是有可能会被再次执行到的,并不是说一定会执行其他线程了。
添加回答
举报
0/150
提交
取消