在web服务中使用线程池可以提高服务器的并发处理能力,尤其是在高并发的情况下,可以提高请求的响应速度。
Python中可以使用多种方式实现线程池,比如使用标准库中的concurrent.futures.ThreadPoolExecutor
模块。这个模块提供了一个简单易用的接口,可以方便地创建线程池,并提交任务执行。
示例1:
import json
import time
from concurrent.futures import ThreadPoolExecutor
import flask
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()
示例2: