/**
* 我们使用了CountDownLatch来等待两个线程执行完毕。
* 当两个线程都执行完毕后,`await()`方法返回,我们再返回最终的结果
*/
public List<String> test123() throws Exception {
List<String> list = new ArrayList<>();
//计数器,初始值为2
CountDownLatch latch = new CountDownLatch(2);
// 执行代码块1
new Thread(() -> {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
Map map = new HashMap();
list.add("1");
//计数器-1
latch.countDown();
}).start();
// 执行代码块2
new Thread(() -> {
list.add("2");
latch.countDown();
}).start();
// 等待所有线程执行完毕(当计数器为0才释放)
latch.await();
// 执行完所有代码块后返回结果
return list;
}
java中,等待多个线程执行完毕后,我们再返回最终的结果
于 2023-06-25 15:22:37 首次发布