您当前的位置: 首页 >  Java

小志的博客

暂无认证

  • 2浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java并发多线程编程——线程之间的通信之join()

小志的博客 发布时间:2021-05-26 22:30:44 ,浏览量:2

目录
    • 一、Thread类中join()方法的理解
    • 二、Thread类中join()方法示例

一、Thread类中join()方法的理解
  • join()属于Thread类中的方法;
  • join()的作用是让“主线程”等待“子线程”结束之后才能继续运行。
  • 把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。 例如在线程A中调用了线程B的Join()方法,直到线程B执行完毕后,才会继续执行线程A。
二、Thread类中join()方法示例

示例场景,定义2个线程分别的线程A和线程B,在线程A中调用了线程B的Join()方法,直到线程B执行完毕后,才会继续执行线程A。

1、代码

package com.xz.thread.t17;

/**
 * @description: Thread类中join()方法示例
 * @author: xz
 * @create: 2021-05-26 22:11
 */
public class Demo {
    /**
     * a方法
     * @param Bthread 传入一个B线程
     */
    public void a(Thread Bthread){
        System.out.println("A方法开始执行。。。。");
        Bthread.start();//启动B线程
        try {
            Bthread.join();//调用B线程的join()方法
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("A方法执行完毕。。。。");
    }

    /**
     * b方法
     */
    public void b(){
        System.out.println("B方法开始执行。。。。");
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("B方法执行完毕。。。。");

    }

    public static void main(String[] args) {
        Demo d =new Demo();
        //创建B线程
        Thread BThread=new Thread(new Runnable() {
            @Override
            public void run() {
                d.b();
            }
        });

        //创建A线程,在A线程中传入B线程
        new Thread(new Runnable() {
            @Override
            public void run() {
                d.a(BThread);
            }
        }).start();


    }
}

2、运行main函数,输出结果如下 在这里插入图片描述 3、结论

  • 在线程A中调用了线程B的Join()方法,直到线程B执行完毕后,才会继续执行线程A。
关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0402s