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
提交
取消