如何在python中从多个进程获取返回值?

2024-04-26 10:41:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从在一个函数中初始化并在另一个函数中启动的多个进程中获取返回值。你知道吗

 import multiprocessing
 import time

 class Auto:

    def __init__(self):
        self.msf = 0

    def auto(self, return_dict, i):
        # print "hello"
        return_dict["hello"] = "hello{}".format(i)

    def msf1(self):
        man = multiprocessing.Manager()
        self.return_dict = man.dict()
        self.a= multiprocessing.Process(target=self.auto, args=(self.return_dict, 1, ))
        self.b= multiprocessing.Process(target=self.auto, args=(self.return_dict, 1, ))
        self.c= multiprocessing.Process(target=self.auto, args=(self.return_dict, 1, ))

    def msf2(self):
        self.a.start()
        self.b.start()
        self.c.start()

        return self.return_dict.values()

Tags: 函数importselfhellotargetautoreturn进程
1条回答
网友
1楼 · 发布于 2024-04-26 10:41:24

可以使用Queue()从多个进程收集项。[docs]

下面是一个非常简单的例子,说明它是如何工作的。请参阅文档的this part,以获得有关其工作原理的更深入的示例。你知道吗

def number(done_queue):
    done_queue.put(5)

done_queue = multiprocessing.Queue()
x = Process(target=number, args=(done_queue))
x.start()
x.join()
y = [i for i in done_queue]
print(y)

相关问题 更多 >