什么时候用async 什么时候用 await? 为啥create_pool的时候不是await呢?

来源:6-2 aiomysql完成数据的读写....

code_bean

2020-11-20

为啥create_pool的时候不是await呢?create_pool不是函数的调用吗?

写回答

1回答

bobby

2020-11-22

async是用来定义好协程的,是定义的时候是用的,真正的调用使用的是await, 但是await是用来调用async定义的函数也就是协程的, create_pool该不该用await要看这个方法是否是使用的async定义的

1
3
bobby
回复
code_bean
正解。 python由于历史原因,所以会有同步和异步两种写法,至于为什么会搞成这样?是因为python是早期语言,很多库都是同步的,后面又出现了异步io,所以为了兼容以前和新出现的异步生态,所以提供了两套写法,这个其实不是python本身的问题,只要是早期语言,想要做到如今这个程度都只会更加复杂,比如java这种,如果想要做到这样也会更加复杂,目前只有新语言才能解决这个问题 比如go,因为go出现的较晚,所以一开始语言设计的时候就不会做成同步io,所以没有历史包袱
2020-11-24
共3条回复

Tornado从入门到进阶 打造支持高并发的技术论坛

异步IO并发编程/Form,ORM/aiomysql、peewee-async/epoll

593 学习 · 350 问题

查看课程