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()