创建一定数量的进程来处理事件,事件处理完进程不退出而是继续处理其他事件,直到所有事件全都处理完毕统一销毁.增加进程的重复利用,降低资源消耗
from multiprocessing import Pool Pool(processes) 功能: 创建进程池对象 参数: 指定进程数量,默认根据系统自动判断
pool.apply_async(func,args,kwds) 功能: 使用进程池执行 func 事件 参数: func 事件函数 args 援助 给func按位置传参 kwds 字典 给func按照键值传参 返回值: 返回函数事件对象
关闭进程池
pool.close() 功能: 关闭进程池
回收进程池中进程
功能: 回收进程池中进程
图解
""" 进程池使用实例 """ from multiprocessing import Pool from time import sleep, ctime # 进程池事件 def worker(msg): sleep(2) print(ctime(), '--', msg) if __name__ == '__main__': # 创建进程池 pool = Pool() # 向进程池队列添加事件 for i in range(10): msg = ' Tedu %d ' % i pool.apply_async(func=worker, args=(msg,)) # 关闭进程池 pool.close() pool.join()
控制台输出
Wed Dec 15 13:50:20 2021 -- Tedu 0 Wed Dec 15 13:50:20 2021 -- Tedu 1 Wed Dec 15 13:50:20 2021 -- Tedu 2 Wed Dec 15 13:50:20 2021 -- Tedu 3 Wed Dec 15 13:50:20 2021 -- Tedu 4 Wed Dec 15 13:50:20 2021 -- Tedu 5 Wed Dec 15 13:50:20 2021 -- Tedu 6 Wed Dec 15 13:50:20 2021 -- Tedu 7 Wed Dec 15 13:50:21 2021 -- Tedu 8 Wed Dec 15 13:50:21 2021 -- Tedu 9