python подклассификация multiprocessing.Process

Я новичок в объектно-ориентированном python, и я переписываю свое существующее приложение в объектно-ориентированную версию, потому что сейчас разработчиков становится все больше, а мой код становится необслуживаемым.

Обычно я использую мультипроцессинговые очереди, но я нашел в этом примере http://www.doughellmann.com/PyMOTW/multiprocessing/basics.html, что я могу подкласс multiprocessing.Process, так что я думаю, что это хорошая идея, и я написал класс для тестирования, как это:

code:

from multiprocessing import Process
class Processor(Process):
    def return_name(self):
        return "Process %s" % self.name
    def run(self):
        return self.return_name()

processes = []


if __name__ == "__main__":

        for i in range(0,5):
                p=Processor()
                processes.append(p)
                p.start()
        for p in processes:
                p.join()

Однако я не могу получить обратно значения, как я могу использовать очереди таким образом?

EDIT: Я хочу получить возвращаемое значение и думаю, куда поместить Queues().

25
задан Nicolás Ozimica 25 January 2017 в 22:01
поделиться

1 ответ

Ответ Майка является лучшим, но просто для полноты хочу отметить, что я предпочитаю собирать очередь из join контекстов , поэтому последний бит будет выглядеть так:

[proc.join() for proc in processes] # 1. join

while not q.empty(): # 2. get the results
    print "RESULT: %s" % q.get()
2
ответ дан 28 November 2019 в 21:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: