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

Python 2.7 多处理,如何在不创建僵尸的情况下并行运行进程?,python-2.7,multiprocessing,Python 2.7,Multiprocessing,我想并行运行这些进程,所以我在\uuuu main\uuu部分注释掉了一个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):

我想并行运行这些进程,所以我在
\uuuu main\uuu
部分注释掉了一个
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()

如果运行多个类似任务,则可以使用


与在每个进程中独立运行任务不同,Pool似乎将实际工作正确地分割开来?@kylex,
Pool.map(worker,range(4))
类似于并行调用
worker(0)
worker(1)
worker(2)
worker(3)
。但仅在指定的进程计数内运行(默认值:cpu计数)。
if __name__ == '__main__':
    pool = multiprocessing.Pool()
    pool.map(worker, range(4))
    pool.close()
    pool.join()