1. 程式人生 > >多個執行緒按順序執行——join()

多個執行緒按順序執行——join()

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();
	}
}