java 等待另一个线程_java用join等待另一个线程完成

Thread提供了让一个线程等待另一个线程完成的方法——join()方法。当在某个程序执行流中调用其他线程的join()方法时,调用线程将被阻塞,直到被join()方法加入的join线程执行完为止。

join()方法通常由使用线程的程序调用,以将大问题划分成许多小问题,每个小问题分配一个线程。当所有的小问题都得到处理后,再调用主线程来进一步操作

public class JoinThread extends Thread {

// 设置线程的名字

public JoinThread(String name) {

super(name);

}

@Override

public void run() {

for (int i = 0; i < 3; i++) {

System.out.println(getName() + " " + i);

}

}

public static void main(String[] args) throws InterruptedException {

// 启动子线程

new JoinThread("新线程").start();

for (int i = 0; i < 5; i++) {

if (i == 2) {

JoinThread jt = new JoinThread("被 join 的线程");

jt.start();

// main 线程调用了 jt 线程的 join() 方法,因为必须等 jt 执行结束才可向下执行

jt.join();

}

System.out.println(Thread.currentThread().getName() + " " + i);

}

}

}

1f680be256545991c4a83eaa28b5e15f.png

以上代码一共有3个线程,当名为“被Join的线程”的线程执行时,实际上只有2个子线程并发执行,而主线程处于等待状态

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值