В чем разница между многопроцессорностью и подпроцессом?

Моя работа должна использовать параллельные методы, и я новый пользователь python. Поэтому мне интересно, можете ли вы поделиться некоторыми материалами о модулях multiprocessing и subprocess python. В чем разница между этими двумя?

3 Solutions collect form web for “В чем разница между многопроцессорностью и подпроцессом?”

Модуль subprocess позволяет запускать и управлять другими программами. Все, что вы можете запустить с командной строки на компьютере, можно запустить и контролировать с помощью этого модуля. Используйте это, чтобы интегрировать внешние программы в свой код Python.

Модуль multiprocessing позволяет разделить задачи, написанные на python, на несколько процессов, чтобы повысить производительность. Он предоставляет API, очень похожий на модуль threading передачи; он предоставляет методы для обмена данными между процессами, которые он создает, и упрощает задачу управления несколькими процессами для запуска кода Python. Другими словами, multiprocessing позволяет использовать несколько процессов для ускорения выполнения ваших задач путем параллельного выполнения кода.

Если вы хотите вызвать внешнюю программу (особенно, не написанную на Python), используйте subprocess .

Если вы хотите вызвать функцию Python в подпроцессе, используйте multiprocessing .

(Если программа написана на Python, но также является импортируемой, я бы попытался вызвать ее функции, используя multiprocessing , а не вызывать ее извне через subprocess .)

Подпроцесс генерирует новые процессы, но помимо stdin / stdout и любых других API, которые могут реализовать другие программы, у вас нет средств для общения с ними. Его основная цель – запустить процессы, которые полностью отделены от вашей собственной программы.

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

  • Как подключить отладчик к подпроцессу python?
  • Запустите приложение C # из сценария python
  • Ошибка подпроцесса Python.Popen () (Нет такого файла или каталога)
  • Как остановить передачу SIGINT на подпроцесс в python?
  • Ошибка вызова LibreOffice из Python
  • Python - лучший язык программирования в мире.