from flask import Flask,render_template
from time import sleep
# 实例化一个app
app = Flask(__name__)
#创建视图函数和路由地址
@app.route('/bobo')
def index1():
sleep(2)
return 'hello bobo'
@app.route('/jay')
def index2():
sleep(3)
return render_template('test.html')
@app.route('/tom')
def index3():
sleep(3)
return render_template('test.html')
if __name__ == '__main__':
app.run(debug=True)
import time
from multiprocessing.dummy import Pool
import requests
urls = [
'http://127.0.0.1:5000/bobo',
'http://127.0.0.1:5000/jay',
'http://127.0.0.1:5000/tom',
]
def get_request(url):
page_text = requests.get(url=url).text
return len(page_text)
#同步代码
if __name__ == "__main__":
start=time.time()
for url in urls:
res = get_request(url)
print(res)
print('总耗时:',time.time()-start)
# 异步代码
if __name__ == "__main__":
start=time.time()
pool = Pool(3) #开启线程的数量
#使用get_request作为回调函数,需要基于异步的形式对urls列表中的每一个元素进行操作
#保证回调函数必须要有一个参数和返回值
result_list = pool.map(get_request,urls)
print(result_list)
print('总耗时:',time.time()-start)