17. Параллельное выполнение¶Concurrent Execution
Модули, описанные в этой главе, обеспечивают поддержку параллельного выполнения кода. Выбор подходящего инструмента зависит от выполняемой задачи (с привязкой к ЦП или к вводу-выводу) и предпочитаемого стиля разработки (событийно-ориентированная кооперативная многозадачность или вытесняющая многозадачность). Ниже приведён обзор:
- 17.1.
threading– Параллелизм на основе потоковthreading – Thread-based parallelism- 17.1.1. Потоково-локальные данныеThread-Local Data
- 17.1.2. Объекты потоковThread Objects
- 17.1.3. Объекты блокировокLock Objects
- 17.1.4. Объекты RLockRLock Objects
- 17.1.5. Объекты ConditionCondition Objects
- 17.1.6. Объекты SemaphoreSemaphore Objects
- 17.1.7. Объекты EventEvent Objects
- 17.1.8. Объекты TimerTimer Objects
- 17.1.9. Объекты BarrierBarrier Objects
- 17.1.10. Использование блокировок, условных объектов и семафоров в операторе
withUsing locks, conditions, and semaphores in the with statement
- 17.2.
multiprocessing– параллелизм на основе процессовmultiprocessing – Process-based parallelism- 17.2.1. ВведениеIntroduction
- 17.2.1.1. Класс
ProcessThe Process class - 17.2.1.2. Контексты и методы запускаContexts and start methods
- 17.2.1.3. Обмен объектами между процессамиExchanging objects between processes
- 17.2.1.4. Синхронизация между процессамиSynchronization between processes
- 17.2.1.5. Совместное использование состояния между процессамиSharing state between processes
- 17.2.1.6. Использование пула рабочих процессовUsing a pool of workers
- 17.2.1.1. Класс
- 17.2.2. Справочная информацияReference
- 17.2.2.1.
Processи исключенияProcess and exceptions - 17.2.2.2. Каналы и очередиPipes and Queues
- 17.2.2.3. РазноеMiscellaneous
- 17.2.2.4. Объекты ConnectionConnection Objects
- 17.2.2.5. Примитивы синхронизацииSynchronization primitives
- 17.2.2.6. Разделяемые объекты
ctypesShared ctypes Objects - 17.2.2.7. МенеджерыManagers
- 17.2.2.8. Объекты-проксиProxy Objects
- 17.2.2.9. Пулы процессовProcess Pools
- 17.2.2.10. Слушатели и клиентыListeners and Clients
- 17.2.2.11. Ключи аутентификацииAuthentication keys
- 17.2.2.12. ЛогированиеLogging
- 17.2.2.13. Модуль
multiprocessing.dummyThe multiprocessing.dummy module
- 17.2.2.1.
- 17.2.3. Рекомендации по программированиюProgramming guidelines
- 17.2.4. ПримерыExamples
- 17.2.1. ВведениеIntroduction
- 17.3. Пакет
concurrentThe concurrent package - 17.4.
concurrent.futures– Запуск параллельных задачconcurrent.futures – Launching parallel tasks - 17.5.
subprocess– Управление подпроцессамиsubprocess – Subprocess management- 17.5.1. Использование модуля
subprocessUsing the subprocess Module - 17.5.2. Вопросы безопасностиSecurity Considerations
- 17.5.3. Объекты PopenPopen Objects
- 17.5.4. Вспомогательные средства Popen для WindowsWindows Popen Helpers
- 17.5.5. Старый высокоуровневый APIOlder high-level API
- 17.5.6. Замена старых функций модулем
subprocessReplacing Older Functions with the subprocess Module- 17.5.6.1. Замена обратных кавычек оболочки /bin/shReplacing /bin/sh shell backquote
- 17.5.6.2. Замена конвейера оболочкиReplacing shell pipeline
- 17.5.6.3. Замена
os.system()Replacing os.system() - 17.5.6.4. Замена семейства
os.spawnReplacing the os.spawn family - 17.5.6.5. Замена
os.popen(),os.popen2(),os.popen3()Replacing os.popen(), os.popen2(), os.popen3() - 17.5.6.6. Замена функций модуля
popen2Replacing functions from the popen2 module
- 17.5.7. Устаревшие функции вызова оболочкиLegacy Shell Invocation Functions
- 17.5.8. ПримечанияNotes
- 17.5.1. Использование модуля
- 17.6.
sched– Планировщик событийsched – Event scheduler - 17.7.
queue– Синхронизированный класс очередиqueue – A synchronized queue class
Ниже приведены вспомогательные модули для некоторых из перечисленных выше служб: