Рубрики
Без рубрики

Параллелизм с процессами, потоками и COROUTINES

Автор оригинала: Doug Hellmann.

Python включает в себя сложные инструменты для управления параллельными операциями с использованием процессов и потоков. Даже многие относительно простые программы могут быть сделаны для бега быстрее, применяя методы для работы деталей задания, одновременно используя эти модули.

Подпрокат предоставляет API для создания и общения со вторыми процессами. Это особенно хорошо для проработки программ, которые производят или потребляют текст, поскольку API поддерживает передачу данных взад-вперед через стандартные входные и выходные каналы нового процесса.

Сигнальный модуль обнажает механизм сигнала UNIX для отправки событий в другие процессы. Сигналы обрабатываются асинхронно, обычно путем прерывания того, что выполняет программу в момент прибытия сигнала. Сигнализация полезна в качестве системы грубой системы обмена сообщениями, но другие методы межпроцессных коммуникаций более надежны и могут доставить более сложные сообщения.

Резьба включает в себя высокоуровневую, ориентированную на объект, API для работы с параллелизмом из Python. <Код> Тема Объекты выполняются одновременно в том же процессе и совместной памяти. Использование потоков – это простой способ масштабирования для задач, которые являются больше, чем ввода-вывод, чем граница CPU.

Многопроцессорный модуль зеркала резьбы, за исключением того, что вместо Thread Class предоставляет . Каждый процесс является настоящим системным процессом без общей памяти, но многопроцессора содержит функции для совместного использования данных и передачи сообщений между ними, чтобы во многих случаях преобразования от потоков в процессы так же просто, как изменение нескольких <код> Импорт утверждения.

Asyncio предоставляет рамки для параллелизма и асинхронного управления ввода/вывода, используя либо систему протокола на основе классовых протоколов. Asyncio заменяет старый <код> ASYNCORE и ASYNCHAT модулей, которые все еще доступны, но устарели.

CONDUROND.FUTURES Обеспечивает внедрение исполнителей на основе потоков и обработки для управления элементами управления ресурсами для работы одновременных задач.

  • Подпроцесс – нерестищие дополнительные процессы
  • Сигнал – асинхронные системные события
  • Резьба – управлять параллельными операциями в процессе
  • Многопроцессор – управлять процессами, такими как потоки
  • Asyncio – асинхронный ввод/вывод, контур событий и инструменты параллелизма
  • concurrent.futures – управлять пулами одновременной задачи