位置: 编程技术 - 正文

Python探索之自定义实现线程池(python 自定义sort)

编辑:rootadmin

推荐整理分享Python探索之自定义实现线程池(python 自定义sort),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python自定义数据操作,python自动,python自定义,python自定义数据操作,python怎么自定义模块,python自定函数,python crud 自动,python怎么自定义模块,内容如对您有帮助,希望把文章链接给更多的朋友!

为什么需要线程池呢?

设想一下,如果我们使用有任务就开启一个子线程处理,处理完成后,销毁子线程或等得子线程自然死亡,那么如果我们的任务所需时间比较短,但是任务数量比较多,那么更多的时间是花在线程的创建和结束上面,效率肯定就低了。

线程池的原理:

既然是线程池(Thread pool),其实名字很形象,就是把指定数量的可用子线程放进一个"池里",有任务时取出一个线程执行,任务执行完后,并不立即销毁线程,而是放进线程池中,等待接收下一个任务。这样内存和cpu的开销也比较小,并且我们可以控制线程的数量。

线程池的实现:

线程池有很多种实现方式,在python中,已经给我们提供了一个很好的实现方式:Queue-队列。因为python中Queue本身就是同步的,所以也就是线程安全的,所以我们可以放心的让多个线程共享一个Queue。

Python探索之自定义实现线程池(python 自定义sort)

那么说到线程池,那么理应也得有一个任务池,任务池中存放着待执行的任务,各个线程到任务池中取任务执行,那么用Queue来实现任务池是最好不过的。

1.low版线程池

设计思路:运用队列queue

将线程类名放入队列中,执行一个就拿一个出来

由于此方法要求使用者修改原函数,并在原函数里传参数,且调用方法也发生了改变,并且有空闲线程浪费资源,实际操作中并不方便,故设计了下一版线程池。

2.绝版线程池

设计思路:运用队列queue

a.队列里面放任务b.线程一次次去取任务,线程一空闲就去取任务

总结

本文链接地址:https://www.jiuchutong.com/biancheng/368738.html 转载请保留说明!

上一篇:python音频处理用到的操作的示例代码(python音频文件读写)

下一篇:Python算法之求n个节点不同二叉树个数(python计算ndvi)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络