0
저는 BaseManager를 사용하여 큐를 작업자 프로세스 풀과 공유합니다. 다른 스레드에서 관리자를 실행시키기 위해 start()를 호출합니다.멀티 프로세싱 BaseManager shutdown() 이십 초 걸립니다
shutdown()에서 "이 문서는 서버 프로세스를 시작하는 데 start()가 사용 된 경우에만 사용할 수 있습니다."라는 메시지가 표시됩니다. 그러나 shutdown()을 호출하면 매번 종료되기 전에 전경 프로세스가 관리자 프로세스에서 20 초 동안 차단됩니다. shutdown()을 호출하지 않으면 전경 프로세스가 즉시 종료됩니까?
무엇이 누락 되었습니까?
또한 문서에 "여러 번 호출 될 수 있습니다."라는 이유가있는 사용자는 누구입니까? 관리자 프로세스에 여러 개의 종료 신호를 보내는 이유는 무엇입니까?
종료 호출이나 지연을 나타내는 프로세스가 생성되지 않습니다. 그게 디자인이라고 생각하니? shutdown()을 호출하지 않으면 어떤 프로세스도 열려 있지 않은 것처럼 보입니다. 나는 심지어 전화하는 것의 의미에 대해서 질문한다. –
셧다운은'util._run_finalizers (0)'을 호출하여 시작 프로세스를 위해 선언 된 파이널 라이저를 실행합니다. 이제 당신이 시작의 정의를 참조한다면, finalize의 등록이 있다는 것을 알게 될 것입니다. 이것은 _finalize_manager를 호출하는데, terminate()에 의지하기 전에 관리자가 완전히 종료되기를 기다릴 때 사용되는 timeout 매개 변수가 있습니다. –
Great. 해명 해 줘서 고마워, 트래비스. –