Hemen Teklif Al
  • Adres : 1. Cadde 1393 Sokak
    No : 7/A Balgat / ANKARA
  • Telefon
    0312 285 72 59
  • E-Posta
    info@basakevyemekleri.com

python pool 예제

다음 접근 법에서는 위에서 사용했던 큐브 예제보다 약간 더 복잡한 함수를 사용하는 직렬 대 다중 처리 접근 방식을 간단히 비교하려고합니다. 이 패키지 내의 기능을 사용하려면 자식에서 __main__ 모듈을 가져올 수 있어야 합니다. 프로그래밍 지침에서는 다루지만 여기서는 여기서 지적할 가치가 있습니다. 즉, 풀 예제와 같은 몇 가지 예제는 대화형 인터프리터에서 작동하지 않습니다. 예: 보시다시피 각 작업은 풀 내에 있는 8명의 작업자 중 한 명에 의해 실행됩니다. 이러한 프로세스는 새 프로세스및 후속 실행을 파괴하고 만드는 데 드는 비용이 많이 드는 작업을 방지하기 위해 재사용됩니다. 응용 프로그램에 따라 병렬 프로그래밍에서 두 가지 일반적인 방법은 각각 스레드 또는 여러 프로세스를 통해 코드를 실행하는 것입니다. 다른 스레드에 “작업”을 제출하는 경우 해당 작업은 단일 프로세스의 “하위 작업”으로 간주될 수 있으며 해당 스레드는 일반적으로 동일한 메모리 영역(예: 공유 메모리)에 액세스할 수 있습니다. 이 방법은 프로세스가 동시에 동일한 메모리 위치에 쓰는 경우와 같은 부적절한 동기화의 경우 충돌을 쉽게 유발할 수 있습니다. 일반적으로 CPU 바인딩 작업에 다중 처리 풀을 사용하는 경우 더 많은 코어가 더 빠른 속도와 같습니다 (많은 주의 사항이 있다고 말하십시오). 그러나 네트워크 바인딩된 항목을 스레딩하고 처리할 때 상황이 크게 달라지는 것처럼 보이므로 풀의 정확한 크기를 실험하는 것이 좋습니다. 그러나 기본 파이썬 인터프리터는 단순성을 염두에 두고 설계되었으며 스레드 안전 메커니즘인 소위 “GIL”(글로벌 인터프리터 잠금)을 가지고 있습니다. 스레드 간의 충돌을 방지하기 위해 한 번에 하나의 문(소위 직렬 처리 또는 단일 스레딩)만 실행합니다.

CPU 제조업체가 프로세서에 점점 더 많은 코어를 추가하기 시작하면 병렬 코드를 만드는 것이 성능을 향상시키는 좋은 방법입니다. 파이썬은 병렬 코드를 작성할 수 있도록 멀티 프로세싱 모듈을 도입했습니다. 프록시 개체의 중요한 특징은 프로세스 간에 전달할 수 있도록 피클링이 가능하다는 것입니다. 그러나 프록시가 해당 관리자의 프로세스로 전송되면 피프를 해제하면 참조 자체가 생성됩니다. 즉, 예를 들어 하나의 공유 개체에 두 번째가 포함될 수 있습니다. 스레딩과 달리 인수를 다중 처리 프로세스에 전달하려면 피클을 사용하여 인수를 직렬화할 수 있어야 합니다.