concurrent.futures是一个非常简单易用的库,主要用来实现多线程和多进程的异步并发。
本文主要对concurrent.futures库相关模块进行详解,并分别提供了详细的示例demo。
1. 模块安装
1) python 3.x中自带了concurrent.futures模块
2) python 2.7需要安装futures模块,使用命令pip install futures安装即可
2. concurrent.futures模块详解
2.1 Executor对象
class concurrent.futures.Executor
Executor是一个抽象类,它提供了异步执行调用的方法。它不能直接使用,但可以通过它的两个子类ThreadPoolExecutor或者ProcessPoolExecutor进行调用。
2.1.1 Executor.submit(fn, *args, **kwargs)
fn:需要异步执行的函数
*args, **kwargs:fn参数
示例:
#-*- coding:utf-8 -*-
from concurrent importfuturesdeftest(num):importtimereturntime.ctime(),num
with futures.ThreadPoolExecutor(max_workers=1) as executor:
future= executor.submit(test,1)printfuture.result()>>>('Tue Jan 17 15:23:10 2017', 1)
2.1.2 Executor.map(func, *iterables, t