Multiprocessing.Process에서 함수의 반환 값에 액세스
Python을 사용한 다중 처리에서 다중 처리에 전달된 함수의 반환 값을 가져옵니다. 프로세스는 Process 개체에 직접 저장되지 않으므로 까다로울 수 있습니다.
다음을 고려하세요. 예:
import multiprocessing def worker(procnum): '''worker function''' print(str(procnum) + ' represent!') return procnum if __name__ == '__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)
이 코드는 각 작업자 프로세스의 출력을 인쇄하지만 해당 반환 값에 직접 액세스할 수는 없습니다.
반환 값을 검색하려면 공유 변수를 사용할 수 있습니다. 다음 수정된 코드에서는 다중 처리 모듈의 Manager()를 사용하여 공유 사전을 생성합니다.
import multiprocessing def worker(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())
여기서 각 작업자 프로세스는 공유 사전 return_dict를 해당 반환 값으로 업데이트합니다. 그러면 기본 프로세스가 공유 사전에서 이러한 값에 액세스할 수 있습니다.
위 내용은 Python의 Multiprocessing.Process 함수에서 반환 값을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!