Параллельное выполнение¶Concurrent Execution
Модули, описанные в этой главе, обеспечивают поддержку параллельного выполнения кода. Выбор подходящего инструмента зависит от выполняемой задачи (с привязкой к ЦП или к вводу-выводу) и предпочитаемого стиля разработки (событийно-ориентированная кооперативная многозадачность или вытесняющая многозадачность). Ниже приведён обзор:
threading– параллелизм на основе потоковthreading – Thread-based parallelism- Потоковые локальные данныеThread-Local Data
- Объекты потоковThread Objects
- Объекты блокировокLock Objects
- Объекты RLockRLock Objects
- Объекты условийCondition Objects
- Объекты семафоровSemaphore Objects
- Объекты событий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
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
- Пакет
concurrentThe concurrent package concurrent.futures– Запуск параллельных задачconcurrent.futures – Launching parallel taskssubprocess– Управление подпроцессами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- Замена обратных кавычек оболочки /bin/shReplacing /bin/sh shell backquote
- Замена конвейера оболочкиReplacing shell pipeline
- Замена
os.system()Replacing os.system() - Замена семейства
os.spawnReplacing the os.spawn family - Замена
os.popen(),os.popen2(),os.popen3()Replacing os.popen(), os.popen2(), os.popen3() - Замена функций из модуля
popen2Replacing functions from the popen2 module
- Устаревшие функции вызова оболочкиLegacy Shell Invocation Functions
- ПримечанияNotes
- Использование модуля
sched– планировщик событийsched – Event schedulerqueue– класс синхронизированной очередиqueue – A synchronized queue class
Ниже приведены вспомогательные модули для некоторых из перечисленных выше служб: