python多进程获取返回值

发布时间:2019-08-26 08:43:44编辑:auto阅读(5964)

    https://segmentfault.com/q/1010000010403117/a-1020000010411306

    1. multiprocessing.Process

    def worker(procnum, return_dict):
        '''worker function'''
        print str(procnum) + ' represent!'
        return_dict[procnum] = procnum
    
    if __name__ == '__main__':
        manager = 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()

    2. multiprocessing.Pool

    p = multiprocessing.Pool(1)
    rslt = p.map(test,('i',))
    print rslt

关键字