并发模型全景图(二):FastAPI 的 async/await 怎么用才对
FastAPI 支持同步和异步两种写法,但很多人不知道什么时候该用哪种,以及混用会有什么后果。这篇文章拆解 FastAPI 的并发模型,讲清楚 async def 和 def 的区别、数据库操作怎么处理、CPU 密集型任务怎么办,以及常见的几个坑。
共 3 篇文章
FastAPI 支持同步和异步两种写法,但很多人不知道什么时候该用哪种,以及混用会有什么后果。这篇文章拆解 FastAPI 的并发模型,讲清楚 async def 和 def 的区别、数据库操作怎么处理、CPU 密集型任务怎么办,以及常见的几个坑。
Go 的并发之所以好用,不只是因为 goroutine 轻量,更因为 Go 运行时实现了一套 M:N 调度器,让协程能真正利用多核。这篇文章拆解 goroutine 的底层原理、GMP 调度模型、channel 的设计哲学,以及 Go 里常见的并发陷阱。
代码为什么会锁住?因为你不清楚当前用的是哪种并发模型。这篇文章从操作系统层面拆解进程、线程、协程、异步 I/O 的本质区别,搞清楚这些概念,才能真正理解为什么 FastAPI 用 async/await,Go 用 goroutine,Python 多线程跑不快。