python线程池threadpool使用篇


本文摘自php中文网,作者不言,侵删。

这篇文章主要为大家详细介绍了python线程池threadpool的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

最近在做一个视频设备管理的项目,设备包括(摄像机,DVR,NVR等),包括设备信息补全,设备状态推送,设备流地址推送等,如果同时导入的设备数量较多,如果使用单线程进行设备检测,那么由于设备数量较多,会带来较大的延时,因此考虑多线程处理此问题。

可以使用python语言自己实现线程池,或者可以使用第三方包threadpool线程池包,本主题主要介绍threadpool的使用以及其里面的具体实现。

1、安装

使用安装:

1

pip installthreadpool

2、使用

(1)引入threadpool模块
(2)定义线程函数
(3)创建线程 池threadpool.ThreadPool()
(4)创建需要线程池处理的任务即threadpool.makeRequests()
(5)将创建的多个任务put到线程池中,threadpool.putRequest
(6)等到所有任务处理完毕theadpool.pool()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

import threadpool

def ThreadFun(arg1,arg2):

 pass

def main():

 device_list=[object1,object2,object3......,objectn]#需要处理的设备个数

 task_pool=threadpool.ThreadPool(8)#8是线程池中线程的个数

 request_list=[]#存放任务列表

 #首先构造任务列表

 for device in device_list:

 request_list.append(threadpool.makeRequests(ThreadFun,[((device, ), {})]))

 #将每个任务放到线程池中,等待线程池中线程各自读取任务,然后进行处理,使用了map函数,不了解的可以去了解一下。

 map(task_pool.putRequest,request_list)

 #等待所有任务处理完成,则返回,如果没有处理完,则一直阻塞

 task_pool.poll()

if __name__=="__main__":

 main()

阅读剩余部分

相关阅读 >>

Python中flask的session设置的方法介绍

Python单链表中如何插入和输出节点?(代码示例)

Python用openpyxl读写excel的实例教程

Python怎么用for循环

Python编程json格式的转换、else语句的活用和setdefault方法详解

Python解方程的技巧介绍(代码示例)

Python中╲t是什么

Python安装的第三方库怎么删除

j详解Python利用rsa库做公钥解密的方法

Python中图像融合、加法运算及图像类型转换的实现(附代码)

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...