多处理器,如何在不创建僵尸的情况下并行运行进程



我想并行运行这些进程,所以我从__main__部分注释掉了一个p.join。没有.join的后果是什么?或者更好的是,我应该使用不同的方法进行并行多处理吗?

import multiprocessing
def worker(num):
    x = 0
    for i in range(10000):
        x+=1
    print x, num
if __name__ == '__main__':
    for i in range(4):
        p = multiprocessing.Process(target=worker, args=(i,))
        p.start()
        # p.join()

启动流程后加入流程。

if __name__ == '__main__':
    procs = []
    for i in range(4):
        p = multiprocessing.Process(target=worker, args=(i,))
        p.start()
        procs.append(p)
    for p in procs:
        p.join()

如果运行多个类似的任务,则可以使用多处理。水塘

if __name__ == '__main__':
    pool = multiprocessing.Pool()
    pool.map(worker, range(4))
    pool.close()
    pool.join()

最新更新