import time
import asyncio
from fastapi import FastAPI
app = FastAPI()
'''
併發兩個請求:阻塞式io,uvicorn開啟的一個執行緒無法同時執行兩個請求,只能一個完成再執行另一個
請求1:
hello
bye
請求2:
hello
bye
'''
@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')
'''
'''
FastAPI之阻塞式io和非阻塞式io
相關文章
- 阻塞IO與非阻塞IO
- 阻塞式IO
- Java 非阻塞 IO 和非同步 IOJava非同步
- IO模式和IO多路複用(阻塞IO、非阻塞IO、同步IO、非同步IO等概念)模式非同步
- python之IO併發-阻塞IO 非阻塞IO IO多路複用 非同步IO(協程)Python非同步
- [作業系統]阻塞io 非阻塞io Epoll作業系統
- Linux 阻塞和非阻塞 IO 實驗學習Linux
- java同步非阻塞IOJava
- IO - 同步 非同步 阻塞 非阻塞的區別非同步
- 談談對不同I/O模型的理解 (阻塞/非阻塞IO,同步/非同步IO)模型非同步
- 【死磕NIO】— 阻塞IO,非阻塞IO,IO複用,訊號驅動IO,非同步IO,這你真的分的清楚嗎?非同步
- IO通訊模型(二)同步非阻塞模式NIO(NonBlocking IO)模型模式BloC
- 從時間碎片角度理解阻塞IO模型及非阻塞模型模型
- 11、協程和io教程01 -- 併發 並行 同步 非同步 阻塞 非阻塞 以及 IO多路複用並行非同步
- epoll 非阻塞IO 邊沿觸發模式模式
- 如何解讀 Java IO、NIO 中的同步阻塞與同步非阻塞?Java
- 玩轉 PHP 網路程式設計全套阻塞與非阻塞 IOPHP程式設計
- 阻塞式程式設計和非阻塞式程式設計區別程式設計
- 精講響應式webclient第1篇-響應式非阻塞IO與基礎用法Webclient
- Java網路程式設計和NIO詳解5:Java 非阻塞 IO 和非同步 IOJava程式設計非同步
- JAVA阻塞IO(BIO)簡介Java
- 如何給女朋友解釋什麼是IO中的阻塞、非阻塞、同步、非同步?非同步
- linux非阻塞式socket程式設計之select()用法Linux程式設計
- 同步非同步,阻塞非阻塞非同步
- 非同步、同步、阻塞、非阻塞非同步
- Netty之非阻塞處理Netty
- 阻塞程式函式 wait()和waitpid()函式AI
- ♻️同步和非同步;並行和併發;阻塞和非阻塞非同步並行
- 分散式系統關注點(20)——阻塞與非阻塞有什麼區別?分散式
- Java中I/O流:阻塞和非阻塞範例Java
- 從linux原始碼看socket的阻塞和非阻塞Linux原始碼
- 從 Linux 原始碼看 socket 的阻塞和非阻塞Linux原始碼
- 同步、非同步,阻塞、非阻塞理解非同步
- 同步、非同步、阻塞與非阻塞非同步
- 驅動Driver-阻塞&非阻塞
- 同步非同步 與 阻塞非阻塞非同步
- 理解阻塞、非阻塞、同步、非同步非同步
- 「linux」例項淺析epoll的LT和ET模式,ET模式為何要使用非阻塞IOLinux模式