Когда нужно быстро скачать много файлов один поток превращает всё в очередь. Решение простое, грузить параллельно через пул потоков.
Создаём пул потоков:
ExecutorService pool = Executors.newFixedThreadPool(4);
Кидаем задачи на скачивание:
pool.submit(() -> download(url1));
pool.submit(() -> download(url2));
pool.submit(() -> download(url3));
Дожидаемся завершения и закрываем пул:
pool.shutdown();
pool.awaitTermination(1, TimeUnit.MINUTES);
Итог такой, что несколько загрузок идут одновременно.
👉 Java Ready | #совет
