我有这段代码:
import multiprocessing
def worker():
print 'Worker'
return
if __name__ == '__main__':
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker)
jobs.append(p)
p.start()
无论出于何种原因,它会打印“工人”两次并停止。有谁知道为什么?我做错了什么?
答案 0 :(得分:1)
在定义的“核心”值上使用Python启动多处理任务,您最好选择创建一个池并在该池内启动Process。
pool = multiprocessing.Pool()
for i in range(5):
pool.apply_async(worker)
pool.close()
但如果你想在途中这样做,我认为你必须添加一个p.join()
:
import multiprocessing
def worker():
print 'Worker'
return
if __name__ == '__main__':
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker)
jobs.append(p)
p.start()
p.join()