三个线程按顺序执行-join实现

package com.example.demo.multithread;

class T1 extends Thread {
	public Thread t;

	public T1(Thread t) {
		this.t = t;
	}

	public void run() {
		try {
			if (t != null) {
				t.join();
			}
			System.out.println("a");
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

class T2 extends Thread {
	public Thread t;

	public T2(Thread t) {
		this.t = t;
	}

	public void run() {
		try {
			if (t != null) {
				t.join();
			}
			System.out.println("b");
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

class T3 extends Thread {
	public Thread t;

	public T3(Thread t) {
		this.t = t;
	}

	public void run() {
		try {
			if (t != null) {
				t.join();
			}
			System.out.println("c");
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

public class T {

	public static void main(String[] args) throws InterruptedException {

		Thread t1 = new T1(null);
		Thread t2 = new T2(t1);
		Thread t3 = new T3(t2);		
		
		t2.start();
		t1.start();	
		t3.start();

	}

}

上一篇:仿网易云音乐日推界面(监听AppBarLayout滑动+动态高斯模糊


下一篇:不合理终止线程的方式