位置: 编程技术 - 正文
推荐整理分享Python探索之自定义实现线程池(python 自定义sort),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:python自定义数据操作,python自动,python自定义,python自定义数据操作,python怎么自定义模块,python自定函数,python crud 自动,python怎么自定义模块,内容如对您有帮助,希望把文章链接给更多的朋友!
为什么需要线程池呢?
设想一下,如果我们使用有任务就开启一个子线程处理,处理完成后,销毁子线程或等得子线程自然死亡,那么如果我们的任务所需时间比较短,但是任务数量比较多,那么更多的时间是花在线程的创建和结束上面,效率肯定就低了。
线程池的原理:
既然是线程池(Thread pool),其实名字很形象,就是把指定数量的可用子线程放进一个"池里",有任务时取出一个线程执行,任务执行完后,并不立即销毁线程,而是放进线程池中,等待接收下一个任务。这样内存和cpu的开销也比较小,并且我们可以控制线程的数量。
线程池的实现:
线程池有很多种实现方式,在python中,已经给我们提供了一个很好的实现方式:Queue-队列。因为python中Queue本身就是同步的,所以也就是线程安全的,所以我们可以放心的让多个线程共享一个Queue。
那么说到线程池,那么理应也得有一个任务池,任务池中存放着待执行的任务,各个线程到任务池中取任务执行,那么用Queue来实现任务池是最好不过的。
1.low版线程池
设计思路:运用队列queue
将线程类名放入队列中,执行一个就拿一个出来
由于此方法要求使用者修改原函数,并在原函数里传参数,且调用方法也发生了改变,并且有空闲线程浪费资源,实际操作中并不方便,故设计了下一版线程池。
2.绝版线程池
设计思路:运用队列queue
a.队列里面放任务b.线程一次次去取任务,线程一空闲就去取任务
总结
标签: python 自定义sort
本文链接地址:https://www.jiuchutong.com/biancheng/368738.html 转载请保留说明!友情链接: 武汉网站建设