为什么多处理不起作用?
Why multiprocessing does not work?
我有这个代码:
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()
无论出于何种原因,它都会打印 'Worker' 两次并停止。有谁知道为什么?我做错了什么?
在 Python 中根据定义的值 "cores" 启动多处理任务,您最好选择创建一个池并在该池内启动进程。
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()
我有这个代码:
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()
无论出于何种原因,它都会打印 'Worker' 两次并停止。有谁知道为什么?我做错了什么?
在 Python 中根据定义的值 "cores" 启动多处理任务,您最好选择创建一个池并在该池内启动进程。
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()