多個執行緒按順序執行——join()
阿新 • • 發佈:2019-02-11
package com.jjyy.thread; /** * 假如有三個執行緒T1,T2,T3,如何保證T2在T3之前執行完成,T1在T2之前完成? * @author jiangyu 2015年9月7日 * 注意:執行緒的優先順序無法保障執行緒的執行次序。只不過優先順序高的執行緒獲取 CPU 資源的概率大一點而已。 */ public class JoinTest { public static void main(String[] args) { final Thread t1 = new Thread(new Runnable() { @Override public void run() { System.out.println("thread1"); } }); final Thread t2 = new Thread(new Runnable() { @Override public void run() { try { // 引用t1執行緒,等待t1執行緒執行完 t1.join(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("thread2"); } }); Thread t3 = new Thread(new Runnable() { @Override public void run() { try { //引用t2執行緒,等待t2執行緒執行完 t2.join(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("thread3"); } }); t3.start(); t2.start(); t1.start(); } }