线程让步
package com.ajax;
//線程讓步:通過yield方法來實現,該方法和sleep方法有點相似,都可以讓當前正在運行的線程暫停,區別在于yield方法不會阻塞該線程,他只是將線程轉換為就緒狀態,讓系統的調度器
//重新調度一次
public class Example05 {public static void main(String[] args){//創建兩個線程Thread t1=new YieldThread("線程A");Thread t2=new YieldThread("線程B");//開啟兩個線程;t1.start();t2.start();}
}
class YieldThread extends Thread{public YieldThread(String name){super(name);}public void run(){for(int i=0;i<5;i++){System.out.println(Thread.currentThread().getName()+"---"+i);if(i==3){System.out.println("線程讓步:");Thread.yield();//線程運行到此,做出讓步}}}
}
/*運行結果:
線程A---0
線程A---1
線程A---2
線程A---3
線程讓步:
線程A---4
線程B---0
線程B---1
線程B---2
線程B---3
線程讓步:
線程B---4
解釋:創建兩個線程的優先級相同,兩個線程在循環變量i=3時,都會調用Thread的yield方法,使當前線程暫停,這時另一個線程就會獲得執行,從運行結果可以看出,當線程b輸出
3以后,會做出讓步,線程a繼續執行,同樣,線程a輸出3后,也會做出讓步,線程b繼續執行*/
總結
- 上一篇: Android中给按钮同时设置背景和圆角
- 下一篇: 数据结构实验之查找四:二分查找