>  기사  >  백엔드 개발  >  다중 처리의 하위 프로세스에서 전역 변수를 어떻게 업데이트할 수 있습니까?

다중 처리의 하위 프로세스에서 전역 변수를 어떻게 업데이트할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-06 07:54:02491검색

How Can I Update Global Variables from Subprocesses in Multiprocessing?

멀티프로세싱 | 전역 변수 업데이트가 상위로 반환되지 않음

다중 처리에서 각 하위 프로세스는 자체 메모리와 전역 상태를 가진 별도의 Python 인스턴스로 실행됩니다. 따라서 하위 프로세스 내의 전역 변수에 대한 업데이트는 상위 프로세스에 표시되지 않습니다. 또한 공유 프록시 또는 큐를 사용하여 프로세스 간에 전달되는 데이터는 피클 가능해야 합니다.

LORR 객체의 피클 불가능성과 관련된 특정 문제를 해결하려면 다음 접근 방식을 고려하세요.

  1. LORR의 피클 가능한 하위 클래스 생성:
    여기에는 LORR에서 상속하고 __getstate__ 및 __setstate__ 메서드를 구현하여 피클링을 활성화하는 새 클래스를 생성하는 작업이 포함됩니다.
  2. ctype 객체:
    ctype 객체에 관련 데이터를 저장하고 해당 객체에 대한 참조를 하위 프로세스에 전달하는 방법을 찾으세요. 그러나 이 접근 방식은 안정적이지 않을 수 있습니다.
  3. 큐를 사용하여 메시지 보내기:
    큐를 사용하여 상위 프로세스와 하위 프로세스 간의 통신 시스템을 구축합니다. 부모는 자식에게 메서드 호출을 보낼 수 있고 자식은 대기열을 통해 결과를 반환할 수 있습니다.

가장 적합한 접근 방식은 LORR 개체의 특정 구현 및 기능에 따라 달라진다는 점을 기억하세요.

위 내용은 다중 처리의 하위 프로세스에서 전역 변수를 어떻게 업데이트할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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