Thread.yield

它與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開始又執行。如此交替執行。結果以下:線程

相關文章
相關標籤/搜索