python asyncio的理解

python aimport asyncio

asyncio:不能提升运算速度,主要能提升网络等待,网络通讯时间

就是一个event loop ,需要你告诉他,什么时候开始,什么时候结束,不存在竞争冒险问题。

coroutine function

coroutine object

所有async 的函数(coroutine function),返回的都是coroutine object,不会运行coroutine function里面的代码

如何运行coroutine function代码?

需要两步

  1. 需要进入async 模式

    只有一种方式asyncio.run(coroutine),参数为一个coroutine;会做两件事,第一会建立event loop

    第二会把coroutine变成event loop里面第一个task

  2. 把coroutine 变成task

    第一个方法await:使用await变成一个task,把控制权交出去,需要等,拿task返回值

    第二个方法creat_task:把coroutine 变成task,并且把task注册到event loop里面

    如果await 后面是一个coroutine,就会把coroutine变成task;

    如果await后面是一个task就会,就会告诉event loop 我需要这个task完成,我把控制权给你,让task完成,把返回值给我,必须用await才能拿到值!

    解决网络通讯问题。

    gather函数,参数是若干个coroutine或task,如果是coroutine会把他变成task注册到event loop里面 ,会返回一个future值

    coroutine只有变成task,才能被执行

    如果代码里面没有等待或者io操作的话,协程对代码是没有帮助的

syncio的理解

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值