На чем основана многопоточность (multithreading) в Python
Python
Middle
Rutube
На чем основана многопоточность (multithreading) в Python
Ответы
В Python многопоточность основана на модуле `threading`, но из-за Global Interpreter Lock (GIL) настоящий параллелизм потоков невозможен. GIL позволяет выполняться только одному потоку за раз, даже на многоядерных процессорах.
**Когда полезно:**
- I/O-bound задачи (сеть, файлы), где потоки могут ждать и освобождать GIL.
- Не подходит для CPU-bound задач (вычисления), тут лучше `multiprocessing`.
**Пример:**
```
import threading
def task():
print("Поток выполняется")
threads = []
for _ in range(5):
t = threading.Thread(target=task)
threads.append(t)
t.start()
for t in threads:
t.join()
```
**Альтернативы:**
- `asyncio` для асинхронного I/O.
- `multiprocessing` для CPU-bound задач.