join() 的示例和作用
1 // 父线程 2 public class Parent { 3 public static void main(String[] args) { 4 // 创建child对象,此时child表示的线程处于NEW状态 5 Child child = new Child(); 6 // child表示的线程转换为RUNNABLE状态 7 child.start(); 8 // 等待child线程运行完再继续运行 9 child.join(); 10 } 11 }
1 // 子线程 2 public class Child extends Thread { 3 public void run() { 4 // ... 5 } 6 }
上面代码展示了两个类:Parent(父线程类),Child(子线程类)。
Parent.main()方法是程序的入口,通过 Child child = new Child(); 新建child子线程(此时 child子线程处于NEW状态);
然后调用child.start()(child子线程状态转换为RUNNABLE);
再调用child.join(),此时,Parent父线程会等待child子线程运行完再继续运行。
详细研究请看Java 浅析 Thread.join() - huangzejun - 博客园 (cnblogs.com)