展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

Thread.join通信

  • 简介
1、使用场景:线程A执行到一半,需要一个数据,这个数据需要线程B去执行修改,只有B修改完成之后,A才能继续操作
2、线程A的run方法里面,调用线程B的join方法,这个时候,线程A会等待线程B运行完成之后,再接着运行
  • 代码案例
public class Main {

    public static void main(String[] args) {
        Thread thread = new Thread(() -> {
            System.out.println(Thread.currentThread().getName()+"开始运行");
            try {
                Thread.sleep(3000L);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+"结束运行");
        }, "线程1");

        new Thread(() -> {
            System.out.println(Thread.currentThread().getName()+"开始运行");
            thread.start();     // 线程1运行完成
            try {
                thread.join();      // 调用线程1的join方法
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+"运行结束");
        }, "线程2").start();
    }

}

# 控制台输出结果:
线程2开始运行
线程1开始运行
线程1结束运行
线程2运行结束
posted @ 2022-05-15 08:31  DogLeftover  阅读(21)  评论(0编辑  收藏  举报