Я не уверен, как у вас дела, но у меня есть все, что запускает асинхронные задачи (предпочтительно с использованием Executor
), возвращающее Future<?>
для каждой запускаемой задачи.Тогда вам просто нужно поместить все Future<?>
в Collection
и выполнить итерацию по нему, вызывая get()
:
List<Future<?>> futures = startAsyncTasks();
for (Future<?> future : futures) {
future.get();
}
// all async tasks are finished
Я здесь исключил обработку исключений для get()
,но это общая идея.