python io多路复用框架_python IO多路 IO多路复用+socket实现 协程

1. IO多路复用

IO多路复用作用:检测多个socket是否已经发生变化(是否已经连接成功/是否已经获取数据)(可读/可写)

2. 基于IO多路复用+socket实现并发请求(一个线程100个请求)

IO多路复用         socket非阻塞

基于事件循环实现的异步非阻塞框架:lzl

非阻塞:不等待

异步:执行完某个人物后自动调用我给他的函数。

Python中开源 基于事件循环实现的异步非阻塞框架 Twisted

3.IO多路复用作用?

检测多个socket是否发生变化。

操作系统检测socket是否发生变化,有三种模式:

select:最多1024个socket;循环去检测。

poll:不限制监听socket个数;循环去检测(水平触发)。

epoll:不限制监听socket个数;回调方式(边缘触发)。

Python模块:

select.select

select.epoll

4.提高并发方案 :

多进程

多线程

异步非阻塞模块  (Twisted) scrapy框架(单线程完成并发)的大V大V

5.什么是异步非阻塞?

非阻塞 , 不等待

比如创建socket对某个地址进行connect、获取接收数据recv时默认都会等待(连接成功或接收到数据),才执行后续操作。

如果设置setblocking(False),以上两个过程就不再等待,但是会报BlockingIOError的错误,只要捕获即可。

异步,通知,执行完成之后自动执行回调函数或自动执行某些操作(通知)。

比如做爬虫中向某个地址baidu.com发送请求,当请求执行完成之后自执行回调函数。

6.什么是同步阻塞 ?

阻塞 : 等

同步 : 按照顺序逐步执行

3. 协程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值