join()
⽅法是Thread
类的⼀个实例⽅法。它的作⽤是让当前线程陷⼊“等待”状态,等join
的这个线程执⾏完成后,再继续执⾏当前线程。有时候,主线程创建并启动了⼦线程,如果⼦线程中需要进⾏⼤量的耗时运算,主线程往往将早于⼦线程结束之前结束。
如果主线程想等待⼦线程执⾏完毕后,获得⼦线程中的处理完的某个数据,就要⽤到join
⽅法了。
示例代码
package com.company;
public class Join {
static class ThreadJoin implements Runnable{
@Override
public void run() {
try {
System.out.println("我是⼦线程,我先睡⼀秒");
Thread.sleep(1000);
System.out.println("我是⼦线程,我睡完了⼀秒");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws InterruptedException {
Thread thread = new Thread(new ThreadJoin());
thread.start();
thread.join();
System.out.println("如果没有join,我会提前输出");
}
}
感谢分享