1. 程式人生 > >執行緒依次執行實踐

執行緒依次執行實踐

第一種方案:jdk  join()方法:

join()的作用是:“等待該執行緒終止”,這裡需要理解的就是該執行緒是指的主執行緒等待子執行緒的終止。也就是在子執行緒呼叫了join()方法後面的程式碼,只有等到子執行緒結束了才能執行。

示例程式碼:

final Thread t1 = new Thread(new Runnable() {
    public void run() {
        System.out.println(Thread.currentThread().getName() + " 執行緒 T1");
    }
}, "T1");
final Thread t2 = new 
Thread(new Runnable() { public void run() { try { t1.join(10); System.out.println(Thread.currentThread().getName() + "執行緒 T2"); } catch (InterruptedException e) { e.printStackTrace(); } } }, "T2"); final Thread t3 = new Thread(new Runnable() { public void
run() { try { t2.join(10); System.out.println(Thread.currentThread().getName() + "執行緒 T3"); } catch (InterruptedException e) { e.printStackTrace(); } } }, "T3"); t1.start(); t2.start(); t3.start();
結果:T1 執行緒 T1
T2執行緒 T2
T3執行緒 T3
第二種方案:執行緒池 
示例程式碼:
//        method 2 使用 單個任務的執行緒池來實現。保證執行緒的依次執行
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.submit(t1);
executor.submit(t2);
executor.submit(t3);
executor.shutdown();
結果:紅