python 进程池实现 pool
2021/12/16 7:15:33
本文主要是介绍python 进程池实现 pool,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
进程池实现
必要性
- 进程的创建和销毁过程消耗的资源比较多
- 当任务量众多,每个任务在很短时间内完成时,需要平方的创建和销毁进程,此时对计算机压力比较大
- 进程池技术很好的解决了以上问题
原理
创建一定数量的进程来处理事件,事件处理完进程不退出而是继续处理其他事件,直到所有事件全都处理完毕统一销毁.增加进程的重复利用,降低资源消耗
进程池实现
- 创建进程池对象,放入适当的进程
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
这篇关于python 进程池实现 pool的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python