为什么多处理不起作用?

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