Python 单例在多进程中使用

6 投票
5 回答
8755 浏览
提问于 2025-04-15 12:48

我该怎么写代码才能让多个进程共享同一个“单例”类的实例呢?

5 个回答

2

我觉得你不能在不同的进程之间共享实例,但你可以让这个实例访问共享内存:http://docs.python.org/library/multiprocessing.html#sharing-state-between-processes,这样可以控制它的状态,如果这正是你想要做的事情。

不过,正如其他回答所说,使用队列(Queue)可能会更简单,能更容易地实现你的需求。

5

进程的主要目的就是为了拥有不同的地址空间。也就是说,每个进程都有自己独立的内存区域。如果你想让不同的进程之间共享信息,就必须使用一些方法来进行进程间通信。

8

最好的办法是指定一个特定的进程来负责这个实例,并专门为它服务。其他任何需要访问这个实例的进程,都要通过消息队列(这是多进程模块提供的)或者其他的进程间通信方式,向负责的进程发送消息。然后,它们可以通过类似的方式收到回复。

撰写回答