Python并发编程—进程池,,进程池实现1.必要性


进程池实现

1.必要性
【1】 进程的创建和销毁过程消耗的资源较多
【2】 当任务量众多,每个任务在很短时间内完成时,需要频繁的创建和销毁进程。此时对计算机压力较大
【3】 进程池技术很好的解决了以上问题。

2.原理

创建一定数量的进程来处理事件,事件处理完进程不退出而是继续处理其他事件,直到所有事件全都处理完毕统一销毁。增加进程的重复利用,降低资源消耗。

3.进程池实现

【1】 创建进程池对象,放入适当的进程

from multiprocessing import Pool

Pool(processes)

功能: 创建进程池对象参数: 指定进程数量,默认根据系统自动判定

【2】 将事件加入进程池队列执行

pool.apply_async(func,args,kwds)

功能: 使用进程池执行 func事件参数: func 事件函数  args 元组 给func按位置传参  kwds 字典 给func按照键值传参返回值: 返回函数事件对象

【3】 关闭进程池

pool.close()

功能: 关闭进程池

【4】 回收进程池中进程

pool.join()

功能: 回收进程池中进程技术图片
 1 from multiprocessing import Pool 2 from time import sleep,ctime 3  4 # 进程池事件 5 def worker(msg): 6   sleep(2) 7   print(msg) 8   return ctime() 9 10 # 创建进程池11 pool = Pool(4)12 13 # 向进程池添加执行事件14 for i in range(10):15   msg = "Hello %d"%i16 17   # r 代表func事件的一个对象18   r = pool.apply_async(func=worker,args=(msg,))19 20 # 关闭进程池21 pool.close()22 23 # 回收进程池24 pool.join()25 26 print(r.get()) # 可以获取事件函数的返回值
进程池使用演示

Python并发编程—进程池

评论关闭