【发布时间】:2016-04-23 04:19:03
【问题描述】:
我有两个 python 类共享一个基类,假设定义了一个 multiprocessing.Queue。
这些类中的每一个都将在单独的子进程上启动,并且需要通过队列共享信息。
现在,如果基类定义了一个队列,那么每个子类对象都会实例化它自己的队列,这使得队列元素的共享变得不可能。但话又说回来,我发现这个记录在案
Queue objects should only be shared between processes through inheritance.
那么在子进程之间共享队列的正确方法是什么?上面这句话有什么意义呢?
请注意,我显然可以在子进程初始化时传递对队列的引用,但我想使用继承来解决这个问题
【问题讨论】:
-
你能举个代码例子吗?我已经快速阅读了一些关于此的内容,我认为继承意味着从父进程继承(如果是这样的话,肯定会令人困惑)。我找到了一些使用
multiprocessing.Manager的例子来避免错误。 -
见here。引用:可以使用可以被子进程继承的共享内存来创建共享对象.
-
我认为混淆是
inheritance这个词。它们意味着进程之间的继承,而不是类之间的继承。
标签: python queue python-multiprocessing