在Python中,如何在已经启动后将队列发送到多处理.Process?

时间:2010-12-02 04:50:30

标签: python queue multiprocessing

通常我会这样做:

q = Queue()
p = Process(target=f, args=(q,))
p.start()

有没有办法传递另一个队列?呃......现在我想起来了 - 这可以通过q来完成吗?

2 个答案:

答案 0 :(得分:2)

  1. 是的,可以通过q完成。您可以在那里传递任何对象,包括另一个Queue
  2. 但是,我不推荐这种做法。描述你最初需要它的原因,也许有更好的设计。

答案 1 :(得分:1)

不,一旦创建了一个进程(该进程被分叉),就不能再向其发送队列了。它们只能在创建进程时发送。否则会导致异常。