python 进程池的简单使用方法

发布时间:2019-03-12 23:20:58编辑:auto阅读(1799)

    回到python,用一下python的进程池。

    记得之前面试的时候,面试官问:你知道进程池的默认参数吗? 我没有回答上来,后来才知道,是有默认参数的。下面就看看它的默认参数

    1. 不加参数

    from multiprocessing.pool import Pool
    from time import sleep
    
    
    def fun(a):
        sleep(5)
        print(a)
    
    if __name__ == '__main__':
        p = Pool()      # 这里不加参数,但是进程池的默认大小,等于电脑CPU的核数
                        # 也是创建子进程的个数,也是每次打印的数字的个数
        for i in range(10):
            p.apply_async(fun, args= (i, ))
        p.close()
        p.join()        # 等待所有子进程结束,再往后执行
        print("end")
    

    2. 加参数5

    from multiprocessing.pool import Pool
    from time import sleep
    
    
    def fun(a):
        sleep(5)
        print(a)
    
    if __name__ == '__main__':
        p = Pool(5)     # 最多执行5个进程,打印5个数
        for i in range(10):
            p.apply_async(fun, args= (i, ))
        p.close()
        p.join()        # 等待所有子进程结束,再往后执行
        print("end")
    

     

关键字