Одновременное выполнение¶
Модули, описанные в этой главе, обеспечивают поддержку параллельного выполнения кода. Выбор подходящего инструмента зависит от выполняемой задачи (CPU bound vs IO bound) и предпочитаемого стиля разработки (кооперативная многозадачность, управляемая событиями, vs вытесняющая многозадачность). Вот обзор:
threading— Параллелизм на основе потоковmultiprocessing— Параллелизм на основе процессовmultiprocessing.shared_memory— Общая память для прямого доступа между процессами- Пакет
concurrent concurrent.futures— Запуск параллельных задачsubprocess— Управление подпроцессамиsched— Планировщик событийqueue— Класс синхронизированной очередиcontextvars— Контекстные переменные
Ниже представлены вспомогательные модули для некоторых из вышеперечисленных услуг: