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

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

DDD
DDD원래의
2024-12-05 07:50:13447검색

How Can I Run Multiple Python Functions in Parallel Using Multiprocessing?

병렬 함수 실행: 다중 처리 가이드

개념

멀티태스킹에는 여러 실행이 포함됩니다. 동시에 작업을 수행하는 것은 스레딩이나 스레딩을 통해 달성할 수 있는 위업입니다. 멀티프로세싱.

멀티프로세싱과 스레딩

Python에서 스레딩은 주로 I/O 바인딩 작업에 유용합니다. CPU 집약적인 작업의 경우 다중 처리는 다중 프로세서 코어를 활용하므로 더 나은 성능을 제공합니다.

병렬로 함수 실행

다음 시나리오를 고려하십시오.

import common

dir1 = 'C:\folder1'
dir2 = 'C:\folder2'
filename = 'test.txt'
addFiles = [25, 5, 15, 35, 45, 25, 5, 15, 35, 45]

def func1():
   c = common.Common()
   for i in range(len(addFiles)):
       c.createFiles(addFiles[i], filename, dir1)
       c.getFiles(dir1)
       time.sleep(10)
       c.removeFiles(addFiles[i], dir1)
       c.getFiles(dir1)

def func2():
   c = common.Common()
   for i in range(len(addFiles)):
       c.createFiles(addFiles[i], filename, dir2)
       c.getFiles(dir2)
       time.sleep(10)
       c.removeFiles(addFiles[i], dir2)
       c.getFiles(dir2)

func1과 func2를 동시에 실행하려면 다중 처리를 사용해야 합니다. 다음은 예입니다.

from multiprocessing import Process

if __name__ == "__main__":
    p1 = Process(target=func1)
    p1.start()
    p2 = Process(target=func2)
    p2.start()
    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으로 문의하세요.