python ThreadPoolExecutor线程池使用

简介: 最近用上ThreadPoolExecutor, 用来代替celery的方式。 主要是用在celery上的时间太少, 没有吃透, 还有,我们的应用没有复杂到那地步, 多开几个服务器,也可以实现线程池的扩展。

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

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

最近用上ThreadPoolExecutor,

用来代替celery的方式。

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

没有吃透,

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

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


ThreadPoolExecutor主要有submit和map方式。

map就够用我们的场景了。


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

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

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

 data为每个函数的返回值。

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

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

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


from concurrent.futures import ThreadPoolExecutor

executor = 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





目录
相关文章
|
11天前
|
安全
python_threading多线程、queue安全队列
python_threading多线程、queue安全队列
16 2
|
7天前
|
并行计算 安全 测试技术
Python多线程
【4月更文挑战第13天】对比多线程与多进程:多线程适合I/O密集型任务,轻量级但受GIL限制;多进程适用于CPU密集型任务,能实现真正并行。多线程直接共享内存,多进程独立内存,各有优劣。
7 0
|
7天前
|
数据采集 安全 Java
Python的多线程,守护线程,线程安全
Python的多线程,守护线程,线程安全
|
7天前
|
并行计算 数据处理 开发者
Python并发编程:解析异步IO与多线程
本文探讨了Python中的并发编程技术,着重比较了异步IO和多线程两种常见的并发模型。通过详细分析它们的特点、优劣势以及适用场景,帮助读者更好地理解并选择适合自己项目需求的并发编程方式。
|
8天前
|
调度 Python 容器
【python】-详解进程与线程
【python】-详解进程与线程
|
10天前
|
人工智能 安全 Java
Python 多线程编程实战:threading 模块的最佳实践
Python 多线程编程实战:threading 模块的最佳实践
126 5
|
11天前
|
Dubbo 安全 Java
ThreadPoolExecutor线程池参数及其设置规则
ThreadPoolExecutor线程池参数及其设置规则
15 1
|
12天前
|
运维 监控 Unix
第十五章 Python多进程与多线程
第十五章 Python多进程与多线程
|
12天前
|
Java 数据库连接 数据处理
Python从入门到精通:3.1.2多线程与多进程编程
Python从入门到精通:3.1.2多线程与多进程编程
|
12天前
|
消息中间件 安全 调度
Python从入门到精通:3.1.1多线程与多进程——进程和线程的概念
Python从入门到精通:3.1.1多线程与多进程——进程和线程的概念