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 线程的基本概念
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律