说明
1、标准库为我们提供了concurrent.futures模块,它提供了线程池和进程池两个类。
2、该模块通过submit返回的是一个future对象。
它是一个未来可期的对象,通过它可以获悉线程的状态主线程(或进程)中可以获取某一个线程(进程)执行的状态或者某一个任务执行的状态及返回值。
实例
import flask import json import time from concurrent.futures import ThreadPoolExecutor # 需安装 app = flask.Flask(__name__) pool = ThreadPoolExecutor() def read_file(): time.sleep(0.1) return "file result" def read_db(): time.sleep(0.2) return "db result" def read_api(): time.sleep(0.3) return "api result" @app.route("/") def index(): result_file = pool.submit(read_file) result_db = pool.submit(read_db) result_api = pool.submit(read_api) return json.dumps({ "result_file": result_file.result(), "result_db": result_db.result(), "result_api": result_api.result(), }) if __name__ == "__main__": app.run()
本文链接:http://so.lmcjl.com/news/8760/