>백엔드 개발 >파이썬 튜토리얼 >다중 처리를 사용하여 Python 함수를 병렬로 실행하려면 어떻게 해야 합니까?

다중 처리를 사용하여 Python 함수를 병렬로 실행하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-29 20:07:13159검색

How Can I Run Python Functions in Parallel Using Multiprocessing?

함수 병렬 실행

Python에서는 함수의 순차적 실행이 기본 동작입니다. 그러나 리소스 집약적인 작업을 처리할 때는 여러 기능을 동시에 실행하여 성능을 향상시키는 것이 도움이 될 수 있습니다. 이 문서에서는 스레딩 또는 다중 처리를 사용하여 함수를 병렬로 실행하는 방법에 대해 설명합니다.

스레딩 및 다중 처리는 각각 다중 스레딩 및 다중 프로세스 시나리오에 대한 메커니즘을 제공하는 두 가지 라이브러리입니다. 스레딩은 더 가볍지만 일반적으로 멀티프로세싱은 계산 작업에 더 나은 성능을 제공합니다.

func1과 func2라는 두 함수를 병렬로 실행하려는 예를 생각해 보겠습니다. 다중 처리를 사용하여 함수를 다음과 같이 정의할 수 있습니다.

def func1():
    # Function 1 code
    print("func1: completing")


def func2():
    # Function 2 code
    print("func2: completing")

함수를 병렬로 실행하려면 다음 접근 방식을 사용할 수 있습니다.

from multiprocessing import Process

p1 = Process(target=func1)
p1.start()
p2 = Process(target=func2)
p2.start()

start() 메서드는 프로세스를 시작합니다. , 동시에 실행됩니다. 기본 프로세스가 하위 프로세스가 완료될 때까지 기다리도록 하려면 다음과 같이 Join() 메서드를 사용할 수 있습니다.

p1.join()
p2.join()

또한 병렬 실행을 도우미 함수로 캡슐화할 수 있습니다.

def runInParallel(*fns):
    proc = []
    for fn in fns:
        p = Process(target=fn)
        p.start()
        proc.append(p)
    for p in proc:
        p.join()

runInParallel(func1, func2)

이를 통해 간단하고 간결한 함수 호출로 여러 함수를 병렬로 실행할 수 있습니다.

위 내용은 다중 처리를 사용하여 Python 함수를 병렬로 실행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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