在流程

时间:2015-05-28 12:22:40

标签: python multiprocessing

我是否正确地说以下是错误的:

import Queue
import multiprocessing

class P(multiprocessing.Process):
    def __init__(self, spy):
        super(P, self).__init__()
        self.queue = Queue.Queue()

    def run(self):
        self.queue.put(1)

因为我在主进程中而不是在类型P的进程中创建队列。如果我在一个进程中创建队列并在另一个进程中使用它,可能会出错,正如我在上面所做的那样?请注意,我不希望在进程之间使用self.queue,我只是错误地在构造函数中创建它。

我的理解是,如果我希望在进程之间使用队列,那么应该使用multiprocessing.Queue。

1 个答案:

答案 0 :(得分:1)

只要您不尝试从两个进程使用队列,通常的队列应该可以正常工作。在某些情况下,队列可能会在每个进程中留下副本,但它们并不相同。

是的,如果两个线程都要使用队列,你应该使用multiprocessing.Queue。

python queue & multiprocessing queue: how they behave?