Зачем нужна многопоточность (multithreading) в Python
Python
Middle
Без компании
Зачем нужна многопоточность (multithreading) в Python
Ответы
Многопоточность в Python позволяет выполнять несколько задач *почти* одновременно, что особенно полезно для I/O-bound операций (сеть, файлы, ожидание ответа от API). Хотя из-за GIL (Global Interpreter Lock) настоящего параллелизма для CPU-bound задач не добиться, потоки экономят время за счёт переключения между задачами.
**Пример (скачивание файлов):**
```
import threading
import requests
def download(url):
response = requests.get(url)
print(f"Downloaded {url}")
urls = ["url1", "url2", "url3"]
threads = []
for url in urls:
thread = threading.Thread(target=download, args=(url,))
thread.start()
threads.append(thread)
for thread in threads:
thread.join()
```
Здесь потоки позволяют скачивать файлы *параллельно*, не блокируя основной поток.
**Когда использовать:**
- I/O-bound задачи (сеть, БД, файлы)
- GUI-приложения (чтобы интерфейс не "зависал")
- Асинхронные операции, где важно ожидание
Для CPU-bound задач лучше использовать `multiprocessing`.