import time
import asyncio
from fastapi import FastAPIapp = FastAPI()'''
并发两个请求:阻塞式io,uvicorn开启的一个线程无法同时执行两个请求,只能一个完成再执行另一个
请求1:hellobye
请求2:hellobye
'''
@app.get('/1')
async def t1():print('hello')time.sleep(5)print('bye')'''
并发两个请求:非阻塞式io,uvicorn开启的一个线程遇到非阻塞io,协程会切换到另一个请求上执行,出现如下效果
请求1:hello
请求2:hello
请求1:bye
请求2:bye
'''
@app.get('/2')
async def t2():print('hello')await asyncio.sleep(5)print('bye')'''
并发两个请求:阻塞式io,使用的是def,会开启两个线程执行视图函数,所以会出现如下效果
请求1:hello
请求2:hello
请求1:bye
请求2:bye
'''
@app.get('/3')
def t3():print('hello')time.sleep(5)print('bye2')''''''