"싱글 톤"클래스의 동일한 인스턴스를 프로세스간에 공유하도록 어떻게 코딩 할 수 있습니까?파이썬 싱글 톤을 멀티 프로세싱으로 변환
4
A
답변
5
하나의 특정 프로세스를 소유하고 전용으로 지정하는 것이 가장 좋습니다. 그 인스턴스에 대한 액세스를 필요로하는 다른 프로세스는 큐 (다중 처리 모듈에 의해 제공됨) 또는 메시지 전달을위한 다른 IPC 메커니즘을 통해 소유 프로세스에 메시지를 보내어이를 획득하고 유사한 메커니즘을 통해 응답을 다시받습니다.
5
프로세스의 전체적인 요점은 다른 주소 공간을 갖는 것입니다. 프로세스간에 정보를 공유하려면 interprocess communication의 몇 가지 수단을 사용해야합니다.
1
프로세스간에 인스턴스를 공유 할 수는 없지만 인스턴스가 공유 메모리에 액세스 할 수 있다고 가정하면 : http://docs.python.org/library/multiprocessing.html#sharing-state-between-processes은 상태를 제어 할 수 있습니다.
그러나 다른 답변에서 설명한 것처럼 대기열을 사용하여 원하는 것을 쉽게 달성 할 수 있습니다.
2
multiprocessing
모듈에는 sharing state between processes에 사용되는 Value
개체가 있습니다. 그들은 이러한 방식으로 상태를 공유하는 방법에 대한 아이디어를 제공하는 코드 샘플을 가지고 있으며 싱글 톤 클래스를 작성할 때이 접근법을 사용할 수 있습니다.
대신 스레딩을해야하나요? – DrFalk3n