python 进程池使用

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)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值