退讓
yield 跟sleep一樣, 都是Thread的static 方法.
請注意一件事, 退讓, 是指將自已(目前執行緒)退出running 並回到runable區, 下次再跟其它執行緒竸爭.
退讓這件事, 絕對不是叫別的執行緒退出. 逼退皇帝讓位, 這不叫讓位, 這叫篡位
下述程式碼中, 因為t1常常自己退出Running, 所以main先完成的機會就比t1大很多.
public class JavaApp{ public static void main(String[] args) { Thread t1=new Thread(new Job(), "t1"); t1.start(); for (int i=1;i<=100;i++){ System.out.printf("%s:%d\n", Thread.currentThread().getName(), i); } } } class Job implements Runnable{ public void run(){ for (int i=1;i<=100;i++){ System.out.printf("%s:%d\n", Thread.currentThread().getName(), i); if(i%2==0)Thread.yield(); } } }