3 并发、并行与异步代码
概括:
如果采用异步编程的话,比如前端给我们发送了一个请求要调用一个API,然后这个API的逻辑非常复杂,需要相当一段时间才能处理完,而这时前端那边又发过来一个新的请求,我们可以让前面那个API到一边去慢慢处理,而我们先来响应新的请求,然后这个请求调用了一个新的API,我们也让它到一边去慢慢处理,我们继续等着响应别的请求。这期间我们时不时去询问一下这两个API处理完了没有,没有的话就接着干,处理完了我们就给它把返回的数据发送回前端。这就是用异步的思想通过并发的方式来提高程序的运行效率。
如果不用异步的话,那么一旦我们接到了一个请求,在这个请求处理完之前,其他的请求都只能排队干等着,不能响应,白白地浪费时间。
总而言之就是,在恰当的地方采用异步编程,可以提高系统的性能。
在 FastAPI 中,实现异步的方式叫“协程”。即看起来是像顺序执行的代码的形式来实现异步。
具体做法:
- 用
async def
来定义函数 - 在调用需要等待才能有结果的函数的时候在前面加上
await
关键字
目前可能还不知道什么函数需要等待响应,因此先用 def
定义也可。