Какие знаешь подходы конкурентного выполнения кода в Python, помимо асинхронности

Python Senior VK
Какие знаешь подходы конкурентного выполнения кода в Python, помимо асинхронности
Ответы
В Python есть несколько подходов для конкурентного выполнения: - **Потоки (threading)** Подходит для I/O-bound задач (сетевые запросы, чтение файлов). ``` import threading def task(): print("Выполняется в потоке") thread = threading.Thread(target=task) thread.start() ``` - **Процессы (multiprocessing)** Для CPU-bound задач (тяжелые вычисления). ``` from multiprocessing import Process def task(): print("Выполняется в процессе") p = Process(target=task) p.start() ``` - **Пулы потоков/процессов** Использует `ThreadPoolExecutor` или `ProcessPoolExecutor` из `concurrent.futures`: ``` from concurrent.futures import ThreadPoolExecutor with ThreadPoolExecutor() as executor: executor.map(lambda x: x**2, [1, 2, 3]) ``` - **GIL (Global Interpreter Lock)** Ограничивает потоки в Python (только один поток выполняет байткод). Процессы обходят GIL, так как у каждого свой интерпретатор. *Выбор зависит от задачи: I/O-bound → threading/async, CPU-bound → multiprocessing.*