join

如果一个线程A执行了thread.join()语句,其含义是:当前线程A等待thread线程终止之后才从thread.join()返回。线程Thread除了提供join()方法之外,还提供了join(long millis)和join(long millis, int nanos)两个具备超时特性的方法。这两个超时方法表示,如果线程thread在给定的超时时间里没有终止,那么将会从该超时方法中返回。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Slf4j
public class Hello {
    @Slf4j
    public static class HelloThread extends Thread {
        @SneakyThrows
        @Override
        public void run() {
            log.info("hello start");
            Thread.sleep(2000);
            log.info("hello end");
        }
    }
    public static void main(String[] args) throws InterruptedException {
        log.info("main start");
        Thread thread = new HelloThread();
        thread.start();
        thread.join();//HelloThread没执行完,main线程可能就执行完了, Thread有一个join方法,可以让调用join的线程等待该线程结束
        log.info("main end");
    }
}

 

 

参考: Java并发编程的艺术 4.3.5 Thread.join()的使用

  Java编程的逻辑 15.1 线程的基本概念

 

posted @   草木物语  阅读(246)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示