Sobes.tech
Back to questions
Junior — Middle
58

Для каких сценариев использования предназначен модуль многопоточности в Python?

Companies where asked
OkkoOkko
Т-БанкТ-Банк

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()