python 进程池使用

python 进程池使用,第1张

python进程池
# Pool(processes=None, initializer=None, initargs=(), maxtasksperchild=None)

# 函数返回一个进程池(Pool)对象

# processes:工作进程的个数,默认为None,表示worker进程数为cpu_count()

# initializer: 表示工作进程start时调用的初始化函数,initargs表示initializer函数的参数,如果initializer不为None,在每个工作进程start之前会调用initializer(*initargs)

# maxtaskperchild: 每个工作进程在退出/被其他新的进程替代前,需要完成的工作任务数,默认为None,表示工作进程存活时间与pool相同,即不会自动退出/被替换。

# 使用例程import multiprocessing
def fun(x):
    time.sleep(1)
    return x ,x+1


if __name__ == '__main__':
    print("本地计算机有: " + str(multiprocessing.cpu_count()) + " 核心")
    process = []
    pool = multiprocessing.Pool(4)
    for j in range(8):
        result = pool.apply_async(fun, (j,))
        #  为fun函数的返回队列地址,当参数个数为1个时,需要加逗号!!!
        process.append(result)
    pool.close()
    pool.join()
    for i in process:
        print(i.get())

运行结果

本地计算机有: 16 核心
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
(5, 6)
(6, 7)
(7, 8)

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/904617.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-15
下一篇2022-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存