1. join() 的示例和作用
1.1 示例
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 线程状态转换图: