多线程join使用注意事项

public class OrderThread
{
	public static void main(String[] args)
	{
		final Thread t3 = new Thread("t3"){
			public void run(){
				try
				{
					System.out.println(Thread.currentThread().getName());
				}
				catch (Exception e)
				{
					e.printStackTrace();
				}
				
			}
		};
		final Thread t2 = new Thread("t2"){
			public void run(){
				try
				{
					t3.join();
					System.out.println(Thread.currentThread().getName());
				}
				catch (Exception e)
				{
					e.printStackTrace();
				}
			}
		};
		Thread t1 = new Thread("t1"){
			public void run(){
				try
				{	
					t2.join();
					System.out.println(Thread.currentThread().getName());
				}
				catch (Exception e)
				{
					e.printStackTrace();
				}
			}
		};
		//必须让t3线程执行start(),若让t1先执行start方法,在t2没start()前,t2.join()会直接跳过,就无法保证线程执行的顺序(t3,t2,t1)
		t3.start();
		t2.start();
		t1.start();
	}
}



你可能感兴趣的:(Java)