线程插队
package com.ajax;
//線程插隊
public class Example06 {public static void main(String[] args)throws Exception{Thread t=new Thread(new EmergencyThread(),"線程一");t.start();for(int i=0;i<6;i++){System.out.println(Thread.currentThread().getName()+"輸入:"+i);if(i==2){t.join();//調用join方法時,調用的線程將被阻塞join方法加入的線程執行完成后他才會繼續運行}Thread.sleep(500);//線程休眠500ms}}
}
class EmergencyThread implements Runnable{public void run(){for(int i=0;i<6;i++){System.out.println(Thread.currentThread().getName()+"輸入:"+i);try{Thread.sleep(500);}catch(InterruptedException e){e.printStackTrace();}}}
}
/*輸出結果:
main輸入:0
線程一輸入:0
main輸入:1
線程一輸入:1
線程一輸入:2
線程一輸入:3
線程一輸入:4
線程一輸入:5
main輸入:2
main輸入:3
main輸入:4
main輸入:5
解釋:main線程中開啟了一個線程t,兩個線程的循環體中都調用了Thread的sleep方法,以實現兩個線程的交替執行。當線程中的循環變量為2時,調用t線程的join方法,這時候t線程就會
插隊優先執行。從運行結果可以看出,當main線程輸出2以后,線程一就開始執行,直到線程一執行完畢,main線程才繼續執行*/
總結
- 上一篇: 数据结构实验之排序二:交换排序
- 下一篇: List和Set以及Map的选用