您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Java中join()方法的使用
## 1. 方法概述
`join()`是Java线程(Thread类)提供的关键方法之一,主要用于**等待线程终止**。当一个线程调用另一个线程的`join()`方法时,当前线程会被阻塞,直到目标线程执行完毕。
```java
public final void join() throws InterruptedException
Thread thread1 = new Thread(() -> {
System.out.println("线程1开始执行");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程1执行完毕");
});
thread1.start();
thread1.join(); // 主线程在此等待
System.out.println("主线程继续执行");
输出结果:
线程1开始执行
(等待2秒)
线程1执行完毕
主线程继续执行
// 最多等待500毫秒
thread1.join(500);
if(thread1.isAlive()) {
System.out.println("线程1仍在运行,不再等待");
}
List<Thread> threads = new ArrayList<>();
for(int i=0; i<5; i++) {
Thread t = new Thread(new Task(i));
t.start();
threads.add(t);
}
// 等待所有线程完成
for(Thread t : threads) {
t.join();
}
System.out.println("所有子线程执行完毕");
InterruptedException
ExecutorService
的awaitTermination()
CountDownLatch
/CyclicBarrier
CompletableFuture
组合操作join()
是控制线程执行顺序的简单有效方式,适合简单的线程同步场景。但在复杂并发程序中,建议使用更高级的并发工具类,以获得更好的性能和更灵活的线程控制。
“`
(注:实际字数为约520字,可根据需要增减示例或说明部分调整字数)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。