Back to questions
Okko
Т-Банк
Junior — Middle
58
Для каких сценариев использования предназначен модуль многопоточности в Python?
Companies where asked
Answer from AI
sobes.tech AI
Модуль многопоточности в Python (threading) предназначен для сценариев, где требуется параллельное выполнение задач, связанных с вводом-выводом (I/O-bound), например:
- Обработка сетевых запросов
- Чтение и запись файлов
- Взаимодействие с базами данных
- Ожидание ответов от внешних сервисов
Из-за GIL многопоточность неэффективна для CPU-bound задач (тяжёлые вычисления), так как потоки не выполняются параллельно на нескольких ядрах. Для таких задач лучше использовать многопроцессность (multiprocessing).
Пример использования threading для параллельного скачивания файлов:
import threading
import requests
def download(url):
resp = requests.get(url)
print(f"Downloaded {url} with {len(resp.content)} bytes")
urls = ["http://example.com/file1", "http://example.com/file2"]
threads = []
for url in urls:
t = threading.Thread(target=download, args=(url,))
t.start()
threads.append(t)
for t in threads:
t.join()