Реализовать многопоточность для скачивания файлов

Есть программа, которая скачивает файлы по заранее найденным ссылкам. Файлов достаточно большое количество и в теории можно ускорить их скачивание, запустив скачивание в несколько потоков. Главная проблема(на мой взгляд) в том, что файлы нужно сохранить в том же порядке, в котором они лежат на сайте. В гугле пишут, что потоки могут работать хаотично. Из за этого может получиться так, что файлы будут скачаны не по порядку. Возможно должно быть так что работает 1 поток и 2 поток. Пока первый не завершил свою работу - второй тоже не завершает. Подскажите как реализовать)


Ответы (1 шт):

Автор решения: Edgar Khachatryan

Можно просто добавить какое-то число в имени файла при сохранении а потом, после завершении скачивания, сортировать по имени и получить правильный порядок.

Например 1ый поток скачает файлы с 1 до 10 и добовляет соответствующие цифры к имени. Например 1_file_name.txt 2_file_name.txt и т.д.

Второй поток с 11 до 20 и делает тоже самое. Ну и остальные потоки тоже добавляют соответствующие цифры к имени файлам.

введите сюда описание изображения

введите сюда описание изображения

→ Ссылка