Python concurrent.futures 线程池进程池模块
在python3.2版本及以上使用concurrent.futures进行线程池和进程池的使用,实现数据高并发。
如果一个人心里藏了那么多的喜怒哀乐,一定曾经活得伤痕累累。
在Python3.2开始就有concurrent_futures,其可以实现线程池,进程池,不必再自己使用管道传数据造成死锁的问题。并且这个模块具有线程池和进程池、管理并行编程任务、处理非确定性的执行流程、进程/线程同步等功能,但是平时用的最多的还是用来构建线程池和进程池。
此模块由以下部分组成:
- concurrent.futures.Executor: 这是一个虚拟基类,提供了异步执行的方法。
- submit(function, argument): 调度函数(可调用的对象)的执行,将 argument 作为参数传入。
- map(function, argument): 将 argument 作为参数执行函数,以 异步 的方式。
- shutdown(Wait=True): 发出让执行者释放所有资源的信号。
- concurrent.futures.Future: 其中包括函数的异步执行。Future对象是submit任务(即带有参数的functions)到executor的实例
知识回顾
线程池案例
1 | # coding:utf-8 |
进程池案例
1 | from concurrent.futures import ProcessPoolExecutor |
refs
进程池、线程池、回调函数 - 听风。 - 博客园
使用concurrent.futures模块并发,实现进程池、线程池 - 听风。 - 博客园
Python concurrent.futures 线程池进程池模块 | Langzi - Never Setter 永不将就
Python concurrent.futures 线程池进程池模块 | Langzi - Never Setter 永不将就