/ / Създаване на обект Queue.Queue в конструктора на процес - python, multiprocessing

Създаване на обект Queue.Queue в конструктора на процес - 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 за отговор № 1

Докато не се опитвате да използвате опашката от двата процеса, обичайната опашка трябва да работи добре. В някои случаи опашката може да остави копие при всеки процес, но те не са същите.

И да, трябва да използвате multiprocessing.Queue, ако опашката се използва от двете нишки.

python опашка и многопроцесорна опашка: как се държат те?