join作用是让其他线程变为等待, t1.join();// 让其他线程变为等待,直到当前t1线程执行完毕,才释放。
thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。
需求:
有两个线程,主线程和子线程,这里要让子线程执行完毕之后,再让主线程执行,这个时候代码如下:
package com.newDemo.controller.test;
public class threadDemo6 {
public static void main(String[] args) {
Thread t1=new Thread(new Runnable() {
public void run() {
for (int i = 1; i < 30; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("子线程,i:" + i);
}
}
});
t1.start();
try {
t1.join(); //这个代码让子线程先执行,然后才执行主线程
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (int i = 1; i < 5; i++) {
System.out.println("主线程,i:" + i);
}
}
}