main线程中有语句 thread1.join()。附着在thread1上的任务里有t1.join() 那么main线程就会等待thread1结束,thread1回等t1结束 如: 1.MainJoinTest .java package thinkinjava.thread; public class MainJoinTest { public static void main(String[] args){ System.out.println(Thread.currentThread()+" start"); Thread thread1 = new Thread(new JoinTestRunnable()); try { thread1.start(); thread1.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(Thread.currentThread()+" end"); } } 2 JoinTestRunnable .java package thinkinjava.thread; public class JoinTestRunnable implements Runnable { @Override public void run() { System.out.println(Thread.currentThread()+" start"); Thread t1 = new Thread(new JoinTestRunnable2()); t1.start(); try { t1.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(Thread.currentThread()+" end"); } } 3.JoinTestRunnable2 .java package thinkinjava.thread; public class JoinTestRunnable2 implements Runnable { @Override public void run() { System.out.println(Thread.currentThread()+" start"); System.out.println(Thread.currentThread()+" end"); } } 运行main 输出结果 Thread[main,5,main] start Thread[Thread-0,5,main] start Thread[Thread-1,5,main] start Thread[Thread-1,5,main] end Thread[Thread-0,5,main] end Thread[main,5,main] end 可以看出main,5等Thread-0,5结束,Thread-0,5等Thread-1,5结束
join理解
最新推荐文章于 2024-07-26 13:10:35 发布