我是否正确地说以下是错误的:
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。
答案 0 :(得分:1)
只要您不尝试从两个进程使用队列,通常的队列应该可以正常工作。在某些情况下,队列可能会在每个进程中留下副本,但它们并不相同。
是的,如果两个线程都要使用队列,你应该使用multiprocessing.Queue。