이 시점까지이 문서의 모든 동시성의 예는 컴퓨터의 단일 CPU 또는 코어에서만 실행됩니다. 그 이유는 CPython의 현재 디자인과 글로벌 인터프리터 잠금 또는 GIL이라는 것과 관련이 있습니다. 그러나 RQ만이 파이썬 작업 대기열 솔루션은 아닙니다. RQ는 사용하기 쉽고 간단한 사용 사례를 매우 잘 다루지만 고급 옵션이 필요한 경우 셀러리와 같은 다른 Python 3 큐 솔루션을 사용할 수 있습니다. 글쎄, 당신은 그들을 어떻게 사용합니까? 파이썬의 GIL은 어렵게 만듭니다. 다행히도, 훨씬 더 많은 지식이 많은 사람들이 GIL 잠금 주위에 점점 훨씬 더 많은 시간을 보내고이 문제를 해결하기 위해 많은 모듈을 만들었습니다. 그러나 일부 모듈에 대한 문서를 보면 스레드, 프로세스 및 코루틴 (또는 적어도 내가하는)에서 길을 잃습니다. 그러나 이에 대해 설명하기 전에 간단한 코드로 이 주제를 시작해 보겠습니다. 병렬 프로그램을 유용하게 만들려면 PC에 얼마나 많은 코어가 있는지 알아야합니다. 파이썬 멀티 프로세싱 모듈을 사용하면 알 수 있습니다.

다음 간단한 코드는 PC의 코어 수를 인쇄합니다. 이 패키지 내의 기능을 사용하려면 자식에서 __main__ 모듈을 가져올 수 있어야 합니다. 프로그래밍 지침에서는 다루지만 여기서는 여기서 지적할 가치가 있습니다. 즉, 다중 processing.pool.Pool 예제와 같은 일부 예제는 대화형 인터프리터에서 작동하지 않습니다. 예를 들어 비동기가 파이썬에 추가되는 것에 대해 많이 들었지만 다른 동시성 방법과 비교하는 방법에 대해 궁금하거나 동시성이란 무엇이며 프로그램 속도를 높이는 방법에 대해 궁금하다면 올바른 위치에 왔습니다. 이 파이썬 동시성 자습서에서는 Imgur에서 인기있는 이미지를 다운로드하는 작은 파이썬 스크립트를 작성합니다. 이미지를 순차적으로 다운로드하는 버전또는 한 번에 하나씩 시작합니다. 전제 조건으로, 당신은 Imgur에 응용 프로그램을 등록해야합니다.

이미 Imgur 계정이 없는 경우 먼저 계정을 만드십시오. 이전에 우리는 멀티 스레딩을 사용하여 파이썬과 동시성을 달성하는 방법을 살펴 보았는데, 여기서 찾을 수있는 자습서 : 파이썬 멀티 스레딩 자습서는 풀이 별도의 파이썬 인터프리터 프로세스를 생성한다는 것입니다. 각 항목은 이터러블의 일부 항목에 대해 지정된 함수를 실행하며, 이 함수의 경우 사이트 목록이 있습니다. 주 프로세스와 다른 프로세스 간의 통신은 다중 처리 모듈에 의해 처리됩니다. 또한 다중 처리 모듈에는 스레딩 모듈에 아날로그가 없는 API가 도입되어 있습니다. 대표적인 예로 풀 오브젝트는 여러 입력 값에 걸쳐 함수실행을 병렬화하고 프로세스 간에 입력 데이터를 분산하는 편리한 수단을 제공합니다(데이터 병렬 처리).