合并方法join
声明
版权声明:本文参考CSDN博主「一个快乐的野指针~」的原创文章,仅用作个人学习,特此声明
原文链接: https://blog.csdn.net/qq_44715943/article/details/116714584
合并方法join
1、概述
方法名 | 作用 |
---|---|
void join() | 将一个线程合并到当前线程中,当前线程受阻塞,加入的线程执行直到结束 |
void join(long millis) | 接上条,等待该线程终止的时间最长为 millis 毫秒 |
void join(long millis, int nanos) | 接第一条,等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒 |
需要注意的是:直到合并进来的线程结束,当前线程才可以继续执行
2、eg.
class MyThread1 extends Thread {
public void doSome(){
MyThread2 t = new MyThread2();
t.join(); // 当前线程进入阻塞,t线程执行,直到t线程结束。当前线程才可以继续。
}
}
class MyThread2 extends Thread{
}
/**
* join方法测试
*/
public class JoinTest {
public static void main(String[] args) {
System.out.println("main begin");
Thread t = new Thread(new MyRunnable2());
t.setName("t");
t.start();
//合并线程
try {
t.join(); // t合并到当前线程中,当前线程受阻塞,t线程执行直到结束。
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("main over");
}
}
class MyRunnable2 implements Runnable {
@Override
public void run() {
for(int i = 0; i < 100; i++){
System.out.println(Thread.currentThread().getName() + "--->" + i);
}
}
}
3、总结
main线程最先开始执行,输出main begin
之后t线程合并进main线程,main线程受阻塞暂停,t线程执行直到结束
t线程结束后main线程继续执行,输出main over
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律