Какими модулями реализуется многопоточность в Python
Python
Middle
Без компании
Какими модулями реализуется многопоточность в Python
Ответы
В Python многопоточность реализуется с помощью модуля `threading`. Однако из-за GIL (Global Interpreter Lock) потоки выполняются не совсем параллельно, а переключаются между собой, что полезно для I/O-bound задач.
Для CPU-bound задач лучше использовать `multiprocessing`, который создает отдельные процессы с собственным GIL.
Также есть `concurrent.futures`, предоставляющий высокоуровневый интерфейс для пула потоков (`ThreadPoolExecutor`) и процессов (`ProcessPoolExecutor`).
Пример с `threading`:
```
import threading
def worker():
print("Thread working")
thread = threading.Thread(target=worker)
thread.start()
thread.join()
```
Пример с `concurrent.futures`:
```
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(max_workers=3) as executor:
executor.submit(lambda: print("Task done"))
```