Параллельное выполнение¶Concurrent Execution
Модули, описанные в этой главе, обеспечивают поддержку параллельного выполнения кода. Выбор подходящего инструмента зависит от выполняемой задачи (с привязкой к ЦП или к вводу-выводу) и предпочитаемого стиля разработки (событийно-ориентированная кооперативная многозадачность или вытесняющая многозадачность). Ниже приведён обзор:
threading– параллелизм на основе потоковthreading – Thread-based parallelism- ВведениеIntroduction
- GIL и соображения производительностиGIL and performance considerations
- СправочникReference
- Данные, локальные для потокаThread-local data
- Объекты потоковThread objects
- Объекты блокировокLock objects
- Объекты RLockRLock objects
- Объекты условияCondition objects
- Объекты семафоровSemaphore objects
- Пример
SemaphoreSemaphore example - Объекты событийEvent objects
- Объекты таймеровTimer objects
- Объекты барьеровBarrier objects
- Использование блокировок, условий и семафоров в операторе
withUsing locks, conditions, and semaphores in the with statement
multiprocessing– параллелизм на основе процессовmultiprocessing – Process-based parallelism- ВведениеIntroduction
- Класс
ProcessThe Process class - Контексты и методы запускаContexts and start methods
- Обмен объектами между процессамиExchanging objects between processes
- Синхронизация между процессамиSynchronization between processes
- Совместное использование состояния между процессамиSharing state between processes
- Использование пула рабочих процессовUsing a pool of workers
- Класс
- СправочникReference
- Глобальный метод запускаGlobal start method
Processи исключенияProcess and exceptions- Каналы и очередиPipes and Queues
- РазноеMiscellaneous
- Объекты соединенийConnection Objects
- Примитивы синхронизацииSynchronization primitives
- Разделяемые
ctypesобъектыShared ctypes Objects - МенеджерыManagers
- Объекты-проксиProxy Objects
- Пулы процессовProcess Pools
- Слушатели и клиентыListeners and Clients
- Ключи аутентификацииAuthentication keys
- ЛогированиеLogging
- Модуль
multiprocessing.dummyThe multiprocessing.dummy module
- Рекомендации по программированиюProgramming guidelines
- ПримерыExamples
- ВведениеIntroduction
multiprocessing.shared_memory– Разделяемая память для прямого доступа между процессамиmultiprocessing.shared_memory – Shared memory for direct access across processes- Пакет
concurrentThe concurrent package concurrent.futures– Запуск параллельных задачconcurrent.futures – Launching parallel tasksconcurrent.interpreters– Несколько интерпретаторов в одном процессеconcurrent.interpreters – Multiple interpreters in the same process- Ключевые деталиKey details
- ВведениеIntroduction
- Несколько интерпретаторов и изоляцияMultiple Interpreters and Isolation
- Запуск в интерпретатореRunning in an Interpreter
- Конкурентность и параллелизмConcurrency and Parallelism
- Взаимодействие между интерпретаторамиCommunication Between Interpreters
- «Совместное использование» объектов“Sharing” Objects
- СправочникReference
- Основы использованияBasic usage
subprocess– Управление подпроцессамиsubprocess – Subprocess management- Использование модуля
subprocessUsing the subprocess Module - Вопросы безопасностиSecurity Considerations
- Объекты PopenPopen Objects
- Вспомогательные функции Popen для WindowsWindows Popen Helpers
- Старый высокоуровневый APIOlder high-level API
- Замена старых функций модулем
subprocessReplacing Older Functions with the subprocess Module - Устаревшие функции вызова оболочкиLegacy Shell Invocation Functions
- ПримечанияNotes
- Использование модуля
sched– планировщик событийsched – Event schedulerqueue– класс синхронизированной очередиqueue – A synchronized queue classcontextvars– контекстные переменныеcontextvars – Context Variables
Ниже приведены вспомогательные модули для некоторых из перечисленных выше служб: