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