它與sleep()相似,只是不能由用戶指定暫停多長時間,而且yield()方法只能讓同優先級的線程有執行的機會spa
package gov.mof.fasp2.gcfr.adjustoffset.adjust; public class Main { public static void main(String[] args) { Runnable r1 = new Processor(); Thread t1 = new Thread(r1, "t1"); t1.start(); Thread t2 = new Thread(r1, "t2"); t2.start(); } } class Processor implements Runnable { public void run() { for (int i=0; i<50; i++) { System.out.println(Thread.currentThread().getName() + "," + i); if (i % 10 == 0) { System.out.println(Thread.currentThread().getName() +"--------------"); //採用yieid能夠將CPU的使用權讓給同一個優先級的線程 Thread.yield(); } } } }
若是t1線程執行了yield,那麼就會暫停,t2開始執行。t2執行yield時會暫停,t1開始又執行。如此交替執行。結果以下:線程