首页 > 解决方案 > 多进程池中的 p.close 和 p.join

问题描述

我正在按照 youtube 的指示学习多处理

from multiprocessing import Pool
import subprocess
import time

def f(n):
    sum = 0
    for x in range(1000):
        sum += x*x
    return sum

if __name__ == "__main__":

    t1 = time.time()
    p = Pool()
    result = p.map(f, range(10000))
    p.close()
    p.join()
    print("Pool took: ", time.time()-t1)

我很困惑p.close()p.join()

当进程关闭时,它们不再存在,如何操纵.join它们?

标签: python

解决方案


join()等待子进程被杀死。被杀死的进程发送一个信号,通知他们的父母他们已经死了。close()不会杀死任何进程,它只是关闭一个管道,通知该管道的读者,不会有更多数据通过它。


推荐阅读