다중 처리와 하위 프로세스의 차이점은 무엇입니까?
내 작업은 병렬 기술을 사용해야하며 저는 파이썬의 새로운 사용자입니다. 그래서 파이썬 multiprocessing
과 subprocess
모듈 에 대한 자료를 공유 할 수 있는지 궁금 합니다. 이 둘의 차이점은 무엇입니까?
이 subprocess
모듈을 사용하면 다른 프로그램을 실행하고 제어 할 수 있습니다. 컴퓨터에서 명령 줄로 시작할 수있는 모든 것은이 모듈로 실행하고 제어 할 수 있습니다. 이것을 사용하여 외부 프로그램을 Python 코드에 통합하십시오.
이 multiprocessing
모듈을 사용하면 Python으로 작성된 작업을 여러 프로세스로 나누어 성능을 향상시킬 수 있습니다. threading
모듈 과 매우 유사한 API를 제공합니다 . 생성 된 프로세스간에 데이터를 공유하는 방법을 제공하고 여러 프로세스를 관리하여 Python 코드를 훨씬 쉽게 실행할 수 있습니다. 즉, multiprocessing
여러 프로세스를 활용하여 코드를 병렬로 실행하여 작업을 더 빠르게 수행 할 수 있습니다.
외부 프로그램 (특히 Python으로 작성되지 않은 프로그램)을 호출하려면 subprocess
.
하위 프로세스에서 Python 함수를 호출하려면 multiprocessing
.
(프로그램이 Python으로 작성되었지만 가져올 수있는 경우을 multiprocessing
통해 외부에서 호출하는 대신를 사용하여 해당 함수를 호출하려고합니다 subprocess
.)
하위 프로세스는 새 프로세스를 생성하지만 stdin / stdout 및 다른 프로그램이 구현할 수있는 다른 API를 제외하고는 통신 할 수단이 없습니다. 주요 목적은 자신의 프로그램과 완전히 분리 된 프로세스를 시작하는 것입니다.
다중 처리는 또한 새 프로세스를 생성하지만 코드를 실행하며 서로 통신하도록 설계되었습니다. 이를 사용하여 프로그램 내의 작업을 여러 CPU 코어로 나눕니다.
'Development Tip' 카테고리의 다른 글
가장 효율적인 node.js 프로세스 간 통신 라이브러리 / 방법은 무엇입니까? (0) | 2021.01.06 |
---|---|
삽입 모드에서 vim을 어떻게 시작합니까? (0) | 2021.01.06 |
R 벡터를 요소 1 개의 string 형 벡터로 변환 (0) | 2021.01.06 |
WPF 단추에 이미지 추가 (0) | 2021.01.06 |
jshint가 " 'case'앞에 'break'문이 있어야합니다." (0) | 2021.01.06 |