Какие варианты многозадачности есть в Python

Python Senior СБЕР Роботы
Какие варианты многозадачности есть в Python
Ответы
В Python есть несколько подходов для многозадачности: - **Потоки (threading)** – подходят для I/O-bound задач (например, сетевые запросы). ``` import threading def task(): print("Thread running") thread = threading.Thread(target=task) thread.start() ``` - **Процессы (multiprocessing)** – для CPU-bound задач (например, вычисления). ``` from multiprocessing import Process def task(): print("Process running") process = Process(target=task) process.start() ``` - **Асинхронность (asyncio)** – для эффективного выполнения I/O-bound задач в одном потоке. ``` import asyncio async def task(): print("Async task") asyncio.run(task()) ``` - **GIL (Global Interpreter Lock)** – ограничивает потоки в CPython, поэтому для CPU-bound задач лучше использовать процессы. Выбор зависит от типа задачи: - I/O-bound → `threading` или `asyncio` - CPU-bound → `multiprocessing`