Windows 다중 처리 오류: RuntimeError
Windows에서 다중 처리를 활용하려고 하면 사용자에게 다음 오류가 발생할 수 있습니다.
RuntimeError: Attempt to start a new process before the current process has finished its bootstrapping phase.
이 오류는 Windows 하위 프로세스가 초기화 시 기본 모듈을 가져오기 때문에 발생하며 잠재적으로 재귀 하위 프로세스로 이어질 수 있습니다. 창조. 이를 방지하려면 메인 모듈에 if __name__ == '__main__': 가드를 포함하는 것이 중요합니다. 이렇게 하면 기본 모듈 내에서 하위 프로세스가 생성되는 것을 방지할 수 있습니다.
문제:
testMain.py:
import parallelTestModule extractor = parallelTestModule.ParallelExtractor() extractor.runInParallel(numProcesses=2, numThreads=4)
parallelTestModule.py:
import multiprocessing from multiprocessing import Process class ParallelExtractor: def runInParallel(self, numProcesses, numThreads): myprocs = [] for pid in range(numProcesses): pr = Process(target=self.runp, args=(pid, numThreads)) myprocs.append(pr) for i in myprocs: i.start() for i in myprocs: i.join()
이 오류를 해결하려면 , if __name__ ==를 포함하도록 testMain.py 스크립트를 수정합니다. '__main__': Guard:
import parallelTestModule if __name__ == '__main__': extractor = parallelTestModule.ParallelExtractor() extractor.runInParallel(numProcesses=2, numThreads=4)
이 수정을 통해 하위 프로세스가 반복적으로 생성되지 않고 Windows 시스템에서 RuntimeError가 해결됩니다.
위 내용은 Windows에서 멀티프로세싱을 사용할 때 '런타임 오류: 현재 프로세스가 부트스트래핑 단계를 완료하기 전에 새 프로세스를 시작하려고 합니다'라는 메시지가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!