加入了join()
package niukewang;
public class MyThread extends Thread {
public MyThread(String name) {
super(name);
}
@Override
public void run() {
for (int i = 0; i <= 20; i++) {
System.out.println(this.getName() + ":" + i);
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws InterruptedException {
MyThread mt = new MyThread("子线程");
mt.start();
mt.join();
for (int i = 0; i <= 20; i++) {
System.out.println("主线程:" + i);
}
}
}
控制台返回的结果
未加入join()方法控制台返回结果
结论:未加入join()方法前,主线程和子线程是并行关系,但是一旦使用了join()方法,就会变成串行的关系;当主线程调用子线程的join()方法时,意味着必须等子线程执行完毕之后,主线程才会开始执行。