Python Academy
47.3K subscribers
1.24K photos
2 videos
419 links
Python Academy — один канал вместо тысячи учебников

Чат канала: @python_academy_chat

Сотрудничество: @zubar89

Канал включён в перечень РКН: https://rkn.link/TVu
Download Telegram
Загрузка файлов асинхронно

Если у нас есть список URL картинок для загрузки, использование простого цикла for позволит нам загрузить их последовательно, по одной за раз.

Однако, для задач, включающих загрузку большого количества маленьких файлов, параллелизация может заметно ускорить процесс.

Для параллелизации мы можем использовать ThreadPoolExecutor из модуля concurrent.futures. Этот инструмент позволяет выполнить функцию загрузки в нескольких параллельных потоках, где в конструкторе необходимо указать максимальное количество потоков для одновременного выполнения.

С помощью метода .map(download, urls) можно развернуть функцию загрузки на каждый URL из списка, обеспечивая их параллельную обработку.

Важно понимать, что так как загрузка файлов является IO-операцией, данный метод не ускоряет выполнение кода в прямом смысле, а скорее позволяет начать загрузку следующего файла, не ожидая завершения предыдущего.

#python #threading
👍52