Я пытаюсь распараллелить тысячи загрузок в python. Каждая загрузка занимает 2-3 секунды. Я смотрел на многопоточность против многопоточности, и кажется, что многопоточность была бы лучше для ввода-вывода в соответствии с.
У меня есть список ссылок на python, и я использую эту функцию, чтобы загрузить их все.
for k in range(0, 90000):
id_sep = urls[k].rpartition('/')
path = 'DownloadFolder/' + id_sep[2] + '.pdf'
if not os.path.exists(path):
urllib.request.urlretrieve(arxiv_PDF_IDs[k], path)
Мне интересно, каков оптимальный метод для параллельной загрузки?
Еще одним соображением является оптимальное количество одновременных загрузок. Это связано с количеством ядер? В моей системе их два по этой команде
импорт многопроцессорных
multiprocessing.cpu_count ()
У меня два ядра. Означает ли это, что оптимальное количество одновременных загрузок равно двум? Если да, то как мне делать только две загрузки одновременно и ставить в очередь остальные итерации?