python进程池使用

import multiprocessing
import time


# 也可以使用concurrent.future中的ProcesPoolExcutor来实现进程池
def process_func(times):
    time.sleep(times)
    print(times)
    return times

if __name__ == "__main__":
    if 0:
        pool = multiprocessing.Pool(multiprocessing.cpu_count())
        res = pool.apply_async(process_func, args=(2,))
        pool.close() # 关闭进程池
        pool.join() # 阻塞主进程
        print("result:{}".format(res.get()))

    if 1:
        # 多进程为了运行更高效,cpu个数应该最大,multiprocessing.cpu_count()获取cpu个数
        pool = multiprocessing.Pool(multiprocessing.cpu_count())

        # 类似线程中map的imap方法,结果返回与列表中顺序一致
        # imap_unordered方法是根据函数返回顺序一致
        for res in pool.imap(process_func, [3,2,4]):
            print("result:{}".format(res))

        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值