Python Flask应用中,如何利用多进程池提升并发编程效率?
- 内容介绍
- 文章标签
- 相关推荐
本文共计209个文字,预计阅读时间需要1分钟。
代码如下:
pythonimport flaskfrom concurrent.futures import ProcessPoolExecutorimport mathimport json
app=flask.Flask(__name__)
def is_prime(n): if n <2: return False if n==2: return True if n % 2==0: return False sqrt_n=int(math.sqrt(n)) for i in range(3, sqrt_n + 1, 2): if n % i==0: return False return True
代码
import flaskfrom concurrent.futures import ProcessPoolExecutor
import math
import json
app = flask.Flask(__name__)
def is_prime(n):
if n < 2:
return False
if n == 2:
return True
if n % 2 == 0:
return False
sqrt_n = int(math.floor(math.sqrt(n)))
for i in range(3, sqrt_n + 1, 2):
if n % i == 0:
return False
return True
@app.route("/is_prime/<numbers>")
def api_is_prime(numbers):
number_list = [int(x) for x in numbers.split(",")]
results = process_pool.map(is_prime, number_list)
return json.dumps(dict(zip(number_list, results)))
if __name__ == '__main__':
process_pool = ProcessPoolExecutor()
app.run()
请求结果
本文共计209个文字,预计阅读时间需要1分钟。
代码如下:
pythonimport flaskfrom concurrent.futures import ProcessPoolExecutorimport mathimport json
app=flask.Flask(__name__)
def is_prime(n): if n <2: return False if n==2: return True if n % 2==0: return False sqrt_n=int(math.sqrt(n)) for i in range(3, sqrt_n + 1, 2): if n % i==0: return False return True
代码
import flaskfrom concurrent.futures import ProcessPoolExecutor
import math
import json
app = flask.Flask(__name__)
def is_prime(n):
if n < 2:
return False
if n == 2:
return True
if n % 2 == 0:
return False
sqrt_n = int(math.floor(math.sqrt(n)))
for i in range(3, sqrt_n + 1, 2):
if n % i == 0:
return False
return True
@app.route("/is_prime/<numbers>")
def api_is_prime(numbers):
number_list = [int(x) for x in numbers.split(",")]
results = process_pool.map(is_prime, number_list)
return json.dumps(dict(zip(number_list, results)))
if __name__ == '__main__':
process_pool = ProcessPoolExecutor()
app.run()
请求结果

