loop事件循环的原理

loop是整个程序的心脏,知道调用什么样的代码,去运行什么方法,不会再阻塞到我们的建立连接或网络请求过程中,loop不停的向我们的操作系统请求哪些socket已经准备好了。一旦准备好了之后立马执行这里边的回调方法,回调方法里是没有我们费io的操作的,全部都是cpu的操作,cpu操作是远远高于我们的io操作的,
#事件循环,不停的请求socket的状态并调用对应的回调函数
def loop():
    #1. select本身是不支持register模式 (支持readable writeable句柄)
    #2. socket状态变化以后的回调是由程序员完成的 ,select会找到这些register
    while not stop:
        ready = selector.select()
        for key, mask in ready:
            # 注册的回调函数call_back
            call_back = key.data
            call_back(key)
    #回调+事件循环+select(poll\epoll)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值