Development Tip

다중 처리와 하위 프로세스의 차이점은 무엇입니까?

yourdevel 2021. 1. 6. 20:30
반응형

다중 처리와 하위 프로세스의 차이점은 무엇입니까?


내 작업은 병렬 기술을 사용해야하며 저는 파이썬의 새로운 사용자입니다. 그래서 파이썬 multiprocessingsubprocess모듈 에 대한 자료를 공유 할 수 있는지 궁금 합니다. 이 둘의 차이점은 무엇입니까?


subprocess모듈을 사용하면 다른 프로그램을 실행하고 제어 할 수 있습니다. 컴퓨터에서 명령 줄로 시작할 수있는 모든 것은이 모듈로 실행하고 제어 할 수 있습니다. 이것을 사용하여 외부 프로그램을 Python 코드에 통합하십시오.

multiprocessing모듈을 사용하면 Python으로 작성된 작업을 여러 프로세스로 나누어 성능을 향상시킬 수 있습니다. threading모듈 과 매우 유사한 API를 제공합니다 . 생성 된 프로세스간에 데이터를 공유하는 방법을 제공하고 여러 프로세스를 관리하여 Python 코드를 훨씬 쉽게 실행할 수 있습니다. 즉, multiprocessing여러 프로세스를 활용하여 코드를 병렬로 실행하여 작업을 더 빠르게 수행 할 수 있습니다.


외부 프로그램 (특히 Python으로 작성되지 않은 프로그램)을 호출하려면 subprocess.

하위 프로세스에서 Python 함수를 호출하려면 multiprocessing.

(프로그램이 Python으로 작성되었지만 가져올 수있는 경우을 multiprocessing통해 외부에서 호출하는 대신를 사용하여 해당 함수를 호출하려고합니다 subprocess.)


하위 프로세스는 새 프로세스를 생성하지만 stdin / stdout 및 다른 프로그램이 구현할 수있는 다른 API를 제외하고는 통신 할 수단이 없습니다. 주요 목적은 자신의 프로그램과 완전히 분리 된 프로세스를 시작하는 것입니다.

다중 처리는 또한 새 프로세스를 생성하지만 코드를 실행하며 서로 통신하도록 설계되었습니다. 이를 사용하여 프로그램 내의 작업을 여러 CPU 코어로 나눕니다.

참조 URL : https://stackoverflow.com/questions/13606867/what-is-the-difference-between-multiprocessing-and-subprocess

반응형