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. Обмен объектами между процессамиExchanging objects between processes
- 17.2.1.3. Синхронизация между процессамиSynchronization between processes
- 17.2.1.4. Разделение состояния между процессамиSharing state between processes
- 17.2.1.5. Использование пула рабочих процессовUsing a pool of workers
- 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.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. Объекты PopenPopen Objects
- 17.5.3. Вспомогательные классы Popen для WindowsWindows Popen Helpers
- 17.5.4. Замена старых функций модулем подпроцессReplacing Older Functions with the subprocess Module
- 17.5.4.1. Замена обратных кавычек оболочки /bin/shReplacing /bin/sh shell backquote
- 17.5.4.2. Замена конвейера оболочкиReplacing shell pipeline
- 17.5.4.3. Замена os.system()Replacing os.system()
- 17.5.4.4. Замена семейства os.spawnReplacing the os.spawn family
- 17.5.4.5. Замена os.popen(), os.popen2(), os.popen3()Replacing os.popen(), os.popen2(), os.popen3()
- 17.5.4.6. Замена функций из модуля popen2Replacing functions from the popen2 module
- 17.5.5. Устаревшие функции вызова оболочкиLegacy Shell Invocation Functions
- 17.5.6. ПримечанияNotes
- 17.6. sched – Планировщик событийsched – Event scheduler
- 17.7. queue – Синхронизированная очередьqueue – A synchronized queue class
- 17.8. select – Ожидание завершения операций ввода-выводаselect – Waiting for I/O completion
Ниже приведены вспомогательные модули для некоторых из перечисленных выше служб:
- 17.9. dummy_threading – Замена модуля threading без измененийdummy_threading – Drop-in replacement for the threading module
- 17.10. _thread – Низкоуровневый API для работы с потоками_thread – Low-level threading API
- 17.11. _dummy_thread – Замена модуля _thread без изменений_dummy_thread – Drop-in replacement for the _thread module