Как загружать файлы многопоточно?

286
03 мая 2017, 09:06

У меня есть определенное количество файлов, которые нужно загрузить на устройство. Все что нужно для загрузки из сети есть (Имею адрес файла). Все бы ничего, но этих файлов у меня довольно много. Как я понял мою задачу нужно реализовывать с помощью пула потоков, но так как я очень мало работал с загрузкой файлов и потоками, то мне пока непонятно как это реализовать. Может у кого-то была схожая задача как у меня, может кто сможет скинуть годных статей с примерами кода по этой теме? Спасибо за понимание.

Answer 1

Все несколько проще. Если у Вас уже есть метод синхронной загрузки файла (в каком потоке запустили загрузку, в том и загружается), то достаточно создать коллекцию из Callable<T>, где в реализации происходит синхронная загрузка файла, и кинуть ее в метод ExecutorService.invokeAll(). ExecutorService выбирайте на свое усмотрение, но для большинства задач подойдет Executors.newCachedThreadPool().

READ ALSO
Поиск ближайшего времени из списка

Поиск ближайшего времени из списка

Добрый деньУ меня есть строка, в ней расположено время ("10:00; 10:20, 09:40, и т

257
Too many open files on tomcat server, tomcat 9

Too many open files on tomcat server, tomcat 9

Томкат работает с огромным количеством файловОн открывает файл, берет всё его содержимое и записывает в String следующим образом:

292
Как мне избежать ArrayIndexOutOfBounds?

Как мне избежать ArrayIndexOutOfBounds?

При попытке преобразовать массив строк на массив чисел бросается исключение ArrayIndexOutOfBounds ExceptionКак нужно избежать этого? Вот сам код:

236
Не генерирует из wsdl заглушки для клиента

Не генерирует из wsdl заглушки для клиента

Есть проблема - я написал веб сервис, клиент которого адекватно генерил заглушки, и каким то образом перестал это делатьНаписан сервер, рабочий...

329