파이썬 병렬처리 예제

이 예제의 다중 처리 버전은 비교적 쉽게 설정할 수 있고 추가 코드가 거의 필요하지 않으므로 좋습니다. 또한 컴퓨터의 CPU 전원을 최대한 활용합니다. 이 코드의 실행 타이밍 다이어그램은 다음과 같습니다 : 이 기사에서 많은 것을 배웠고 자신의 프로젝트에서 동시성을 많이 사용했으면합니다. 학습을 확인하기 위해 아래에 링크 된 “파이썬 동시성”퀴즈를 가져 가십시오 : 이제 파이썬 ThreadPoolExecutor로 다운로드 된 모든 이미지를 가지고 있으므로 CPU 바인딩 된 작업을 테스트하는 데 사용할 수 있습니다. 단일 스레드 단일 프로세스 스크립트에서 모든 이미지의 썸네일 버전을 만든 다음 멀티프로세싱 기반 솔루션을 테스트할 수 있습니다. 여기서 가장 큰 문제는 우리가 제공하는 다른 솔루션에 비해 상대적으로 느리다는 것입니다. 다음은 최종 출력이 내 컴퓨터에 준 것의 예입니다 : 사실상, 스레딩 / 멀티 프로세싱에 대한 소개, 생산자 / 소비자 예제 코드 : 더미는 멀티 프로세싱 모듈의 정확한 복제입니다. 유일한 차이점은 멀티 프로세싱이 프로세스와 함께 작동하는 반면 더미 모듈은 스레드를 사용한다는 것입니다 (일반적인 파이썬 제한 사항이 있습니다). 따라서 하나에 적용되는 모든 것이 다른 하나에 적용됩니다. 그것은 매우 쉽게 앞뒤로 두 사이 홉.

일부 프레임 워크 호출이 IO 또는 CPU 바인딩되어 있는지 확실하지 않은 경우 예비 프로그래밍에 특히 적합합니다. 이렇게 하면 새로 생성된 Python 인터프리터가 모듈을 안전하게 가져온 다음 모듈의 foo() 함수를 실행할 수 있습니다. 파이썬의 전역 범위와 중첩 된 정의를 사용하여 함수를 쉽게 수정할 수 있습니다. 이 함수에 하나의 인수를 두는 것은 래퍼일 뿐입니다. 배율 조정 문제도 여기에 큰 직기. 각 사이트에 대한 스레드를 통해 위의 스레딩 예제를 실행하는 것은 소수의 스레드로 실행하는 것보다 눈에 띄게 느립니다. 수백 개의 작업으로 비동기 예제를 실행하는 것은 전혀 느려지지 않았습니다. 이후의 모든 코드 예제에는 해당 예제와 관련된 새 가져오기 문만 표시됩니다. 편의를 위해 이러한 모든 파이썬 스크립트는 이 GitHub 리포지토리에서 찾을 수 있습니다.

파이썬의 선은 우리에게 뭔가를 할 수있는 한 가지 분명한 방법이 있어야한다고 말하지만, 파이썬에는 우리 프로그램에 동시성을 도입하는 여러 가지 방법이 있습니다.

Share on Google+Share on FacebookTweet about this on Twitter
error: Садржај је заштићен !!