博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python ThreadPoolExecutor线程池使用
阅读量:7118 次
发布时间:2019-06-28

本文共 870 字,大约阅读时间需要 2 分钟。

python有好几种实现线程池的方式,

注意选择一下,哪种是自己需要的。

最近用上ThreadPoolExecutor,

用来代替celery的方式。

主要是用在celery上的时间太少,

没有吃透,

还有,我们的应用没有复杂到那地步,

多开几个服务器,也可以实现线程池的扩展。

ThreadPoolExecutor主要有submit和map方式。

map就够用我们的场景了。

使用ThreadPoolExecutor时,需要注意的是map函数的参数是如何构造的。

(就是将cmd_run后面的参数,构造为有相同于进程池数量的参数列表!!!)

【就是参数个人为cmd_run要求的个数,但列表内的长度为进程池数量,利用率刚好】

 data为每个函数的返回值。

注意,进程的退出,不到山穷水尽,不要用os.exit()这样的函数,

python可能无法正常完成数据操作及资源回收。

最好是利用函数的返回值自然退出线程,高端些~

from concurrent.futures import ThreadPoolExecutorexecutor = ThreadPoolExecutor(max_workers=xxx)for data in executor.map(cmd_run, subserver, [deploy_type] * sub_len, [cmd] * sub_len,                         [current_user_set] * sub_len, [percent_value] * sub_len,                         [app_name] * sub_len, [deployversion_id] * sub_len, [auto_deploy_id] * sub_len):    mylog.debug("cmd %s result is: " % cmd + str(data))    if not data:        return False

转载地址:http://bnbel.baihongyu.com/

你可能感兴趣的文章
第十八章_SSL证书
查看>>
仿百度壁纸客户端(五)——实现搜索动画GestureDetector手势识别,动态更新搜索关键字...
查看>>
【原创】Erlang 之 debugger 调试简介
查看>>
昂贵的付费学习时代,云栖为什么会做面向开发者的纯公益?
查看>>
如何通过备份文件恢复SQL Server数据库
查看>>
Linux堆内存管理深入分析 (下)
查看>>
暂停、恢复CALayer 动画
查看>>
Android 通过Get/Post提交请求数据到服务器
查看>>
http 415 错误
查看>>
RSA算法
查看>>
转 Cocos2d-x3.0模版容器详解之一:cocos2d::Vector<T>
查看>>
UIView相关方法
查看>>
[J2ME Q&A]真机报告MontyThread -n的错误之解释
查看>>
算法——分支限界法
查看>>
蓝桥杯 历届试题 九宫重排
查看>>
java 中的 instanceof
查看>>
泛函编程(22)-泛函数据类型-Monoid In Action
查看>>
iOS开发之网络编程--中文转码
查看>>
【原】设计稿中字体pt与px之间的转化
查看>>
How to make a not-so-boring speech?
查看>>