【问题标题】:Queue objects should only be shared between processes through inheritance队列对象只能通过继承在进程之间共享
【发布时间】: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


【解决方案1】:

那么在子进程和子进程之间共享队列的正确方法是什么? 上面这句话怎么讲得通?

当您谈论进程之间的继承时,这句话是有道理的,例如子进程和父进程。它与面向对象编程中的类和继承无关。


如需正确使用队列,请查看thisthis

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 2017-07-27
    • 1970-01-01
    • 2012-11-27
    • 2012-07-22
    • 2012-04-12
    • 2021-10-21
    • 2016-02-05
    • 1970-01-01
    相关资源
    最近更新 更多