multiprocessing.Process에 전달된 함수에서 반환 값을 검색하는 방법
multiprocessing.Process에 함수를 전달할 때 다음이 필요한 경우가 많습니다. 함수의 반환 값을 검색합니다. 그러나 이러한 값은 반환된 Process 개체에서 쉽게 액세스할 수 없습니다.
다음 코드를 고려하세요.
import multiprocessing
def Worker(procnum):
'''worker function''' print str(procnum) + ' represent!' return procnum
만약 이름 == '__main__':
jobs = [] for i in range(5): p = multiprocessing.Process(target=worker, args=(i,)) jobs.append(p) p.start() for proc in jobs: proc.join() print jobs
'jobs'의 프로세스 개체를 통해 예상되는 반환 값을 사용할 수 없습니다.
해결책: 공유 변수 사용
반환 값을 검색하기 위해 공유 변수를 활용하여 메인 프로세스와 작업자 간의 통신을 활성화할 수 있습니다. 프로세스.
다중 처리 가져오기
def 작업자(procnum, return_dict):
"""worker function""" print(str(procnum) + " represent!") return_dict[procnum] = procnum
if name == "__main__":
manager = multiprocessing.Manager() return_dict = manager.dict() jobs = [] for i in range(5): p = multiprocessing.Process(target=worker, args=(i, return_dict)) jobs.append(p) p.start() for proc in jobs: proc.join() print(return_dict.values())
설명:
위 내용은 multiprocessing.Process 함수에서 반환 값을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!