>백엔드 개발 >파이썬 튜토리얼 >다중 처리를 사용하여 간단한 Python 루프를 어떻게 쉽게 병렬화할 수 있습니까?

다중 처리를 사용하여 간단한 Python 루프를 어떻게 쉽게 병렬화할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-03 16:25:12428검색

How Can I Easily Parallelize a Simple Python Loop Using Multiprocessing?

간단한 Python 루프 병렬화

제공된 Python 루프는 범위를 반복하고 각 반복에 대해 계산을 수행합니다. 이 루프를 병렬화하는 방법에는 여러 가지가 있지만 질문에서는 가장 쉬운 접근 방식에 대한 선호도를 지정합니다. 멀티 프로세싱을 사용하는 두 가지 간단한 방법이 아래에 설명되어 있습니다.

멀티 프로세싱 모듈을 사용한 멀티 프로세싱

멀티 프로세싱 모듈은 프로세스 풀을 생성하기 위한 ProcessPool 클래스를 제공합니다. 코드는 다음과 같이 다시 작성할 수 있습니다.

import multiprocessing

pool = multiprocessing.Pool(4)
out1, out2, out3 = zip(*pool.map(calc_stuff, range(0, 10 * offset, offset)))

여기서 4개의 프로세스로 구성된 풀이 생성됩니다. pool.map() 메서드는 iterable의 각 요소에 calc_stuff 함수를 적용하고 결과 튜플을 반환합니다.

concurrent.futures.ProcessPoolExecutor를 사용한 다중 처리

또는 , 동시.futures 모듈은 프로세스 생성을 단순화하는 ProcessPoolExecutor 클래스를 제공합니다. 관리. 코드는 다음과 같습니다.

from concurrent.futures import ProcessPoolExecutor

with ProcessPoolExecutor() as pool:
    out1, out2, out3 = zip(*pool.map(calc_stuff, range(0, 10 * offset, offset)))

두 접근 방식 모두 내부적으로 다중 처리 모듈을 활용하고 Linux 및 기타 운영 체제 모두에서 루프를 병렬화하는 쉬운 방법을 제공합니다.

위 내용은 다중 처리를 사용하여 간단한 Python 루프를 어떻게 쉽게 병렬화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.