基于多线程中join()的用法实例讲解
时间:2021-02-22 17:58:55|栏目:JAVA代码|点击: 次
Thread中,join()方法的作用是调用线程等待该线程完成后,才能继续用下运行。
public class TestThread5 {
public static void main(String[] args) throws InterruptedException {
Runner0 run5 = new Runner0();
Thread th5 = new Thread(run5);
th5.start();
th5.join();//join()方法用在此处是为了等待主线程结束后运行子线程
for(int i=0;i<5;i++){
System.out.println("子线程:"+i);
}
}
}
class Runner0 implements Runnable{
public void run(){
for(int i=0;i<5;i++)
System.out.println("主线程:"+i);
}
}
上述代码的运行结构如下所示:

当然,如果不使用join()方法
public class TestThread6{
public static void main(String[] args) throws InterruptedException {
Runner0 run5 = new Runner0();
Thread th5 = new Thread(run5);
th5.start();
// th5.join();
for(int i=0;i<4;i++){
System.out.println("子线程:"+i);
}
}
}
class Runner0 implements Runnable{
public void run(){
for(int i=0;i<4;i++)
System.out.println("主线程:"+i);
}
}
如上代码注释掉jion()方法,

根据上面两个不同的代码,输出的不同,很容易就能理解join()方法。


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




