How can I recover the return value of a function passed to multiprocessing.Process?

前端 未结 12 1885
野的像风
野的像风 2020-11-22 07:36

In the example code below, I\'d like to recover the return value of the function worker. How can I go about doing this? Where is this value stored?

12条回答
  •  无人共我
    2020-11-22 08:13

    Use shared variable to communicate. For example like this:

    import multiprocessing
    
    
    def worker(procnum, return_dict):
        """worker function"""
        print(str(procnum) + " represent!")
        return_dict[procnum] = procnum
    
    
    if __name__ == "__main__":
        manager = multiprocessing.Manager()
        return_dict = manager.dict()
        jobs = []
        for i in range(5):
            p = multiprocessing.Process(target=worker, args=(i, return_dict))
            jobs.append(p)
            p.start()
    
        for proc in jobs:
            proc.join()
        print(return_dict.values())
    

提交回复
热议问题