python进程池简单讲解

多进程是是实现多任务的一种方法,进程池是实现多进程的一种方法,它可以定义一次可以执行多少个进程。对于知道需要同时执行多少个任务,而且同时执行任务较少(比如:同时执行5个任务),可以直接创建相应数量的进程。但对于所需要进程数量不确定,而且同时执行任务很多的情况下(比如:同时执行1000个任务),你不可能同时创建1000个进程,这样你的电脑会卡死,所以需要进程池来管理进程。

下面使用python来实现一个简单的进程池:

from multiprocessing import Pool
imoprt os, time, random

def Work(number):
    # 创建一个方法,充当一次任务
    start = time.time()
    # os.getpid()为输出进程号
    print("%d个进程开始执行,进程号为:%d" % (number, os.getpid()))
    time.sleep(random.ramdom())
    end = time.time()
    print("%d个进程结束,执行时间为:%0.2f" % (number, end - start))

def main():
    # 创建一个进程池,最大进程数量为3
    po = Pool(3)
    # po.apply_async(所要执行的任务,(传递的参数1,传递的参数2))为调用进程池执行任务。
    for temp in range(0, 10)
        po.apply_async(Work, (temp, ))
    po.close()  # 关闭进程池不再接受新的任务
    po.join()  # 阻塞主线程,等待子线程执行完毕,如果没有该方法,当主线程比子线程先执行完毕,那么主线程就会关闭,子线程即使没有执行完,也会关闭。

if __name__ == "__main__":
    main()

以上就是简单的线程池的python代码实现:
运行结果:

从运行结果来看,同时运行的县城只能有3个,只有当前一个线程(任务)执行完毕后,才能够执行其他线程(任务)。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值