>백엔드 개발 >파이썬 튜토리얼 >Python 프로세스 풀 기능 표시 및 예제 분석

Python 프로세스 풀 기능 표시 및 예제 분석

乌拉乌拉~
乌拉乌拉~원래의
2018-08-23 17:41:502135검색

다음 글에서는 파이썬에서 프로세스 풀이 무엇인지 알아보겠습니다. Python 프로세스 풀에 대해 알아보고 Python 프로그래밍에서 프로세스 풀이 어떤 역할을 할 수 있는지 알아보세요.

Process Pool

Pool 클래스는 작업자 프로세스 풀을 설명하며 작업에 대해 작업자 프로세스를 오프로드하는 여러 가지 방법이 있습니다.

프로세스 풀은 내부적으로 프로세스 순서를 유지합니다. 프로세스 풀 순서에 사용 가능한 프로세스가 없으면 프로그램은 프로세스 풀로 이동합니다. 풀에 사용 가능한 프로세스가 있을 때까지.

Pool 클래스를 사용하여 프로세스 풀을 만들고 제출된 작업을 프로세스 풀로 확장할 수 있습니다.

예를 들어 보겠습니다.

#apply
from  multiprocessing import Pool
import time

def f1(i):
    time.sleep(0.5)
    print(i)
    return i + 100
if __name__ == "__main__":
    pool = Pool(5)
    for i in range(1,31):
        pool.apply(func=f1,args=(i,))
        
#apply_async
def f1(i):
    time.sleep(0.5)
    print(i)
    return i + 100
def f2(arg):
    print(arg)
    
if __name__ == "__main__":
    pool = Pool(5)
    for i in range(1,31):
        pool.apply_async(func=f1,args=(i,),callback=f2)
    pool.close()
    pool.join()

프로세스 풀 개체는 제출할 수 있는 작업자 프로세스 풀의 작업을 제어할 수 있으며 시간 초과 및 콜백의 비동기 결과를 지원합니다. a 지도 구현과 유사합니다.

processes: 사용된 작업자 프로세스 수입니다. 프로세스가 None이면 os.cpu_count()에서 반환된 숫자를 사용합니다.

initializer: 초기화 프로그램이 None이면 각 작업자 프로세스는 처음에 초기화 프로그램(*initargs)을 호출합니다.

maxtasksperchild: 작업자 프로세스가 종료되기 전에 완료할 수 있는 작업 수. 완료 후에는 유휴 리소스를 해제하기 위해 원래 프로세스를 대체하는 데 새 작업자 프로세스가 사용됩니다. maxtasksperchild의 기본값은 None입니다. 이는 풀이 존재하는 한 작업자 프로세스가 유지됨을 의미합니다.

context: 작업자 프로세스가 시작될 때 컨텍스트를 설정하는 데 사용됩니다. 일반적으로 컨텍스트 개체의 multiprocessing.Pool() 또는 Pool() 메서드는 모두 컨텍스트를 설정하는 데 사용됩니다.

참고: Pool 개체의 메서드는 풀을 생성한 프로세스에서만 호출할 수 있습니다.

위 내용은 이 글의 전부입니다. 이 글은 파이썬 프로세스 풀 관련 지식을 주로 소개하고 있으니 참고하시기 바랍니다. 콘텐츠. 이 글에서 제가 설명한 내용이 여러분에게 도움이 되고 파이썬을 더 쉽게 배울 수 있기를 바랍니다.

더 많은 관련 지식을 보려면 PHP 중국어 웹사이트Python 튜토리얼 컬럼을 방문하세요.

위 내용은 Python 프로세스 풀 기능 표시 및 예제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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