标签:zzu 导致 atm 大量 iso rtb emc wrk xid
网络编程中有基本的5中IO模型,每种模型有个子的特色但是 ,他们都是为了解决在IO的过程中阻塞的问题而研究出来的!
1,阻塞IO模型(blocking)
最基础的模型之一,从学习网络编程开始,写的大部分都为阻塞IO模型
阻塞IO 的基本图形,当python发起接收数据时向操作系统请求,此时会阻塞,一直等待有数据有数据被copy返回给python,因此阻塞IO不会充分的使用cpu,并且在切换的过程中消耗了大量的时间,由此想要解决这些问题从而有了非阻塞IO模型。
2,非阻塞IO模型(non-blocking)
非阻塞IO模型在阻塞IO模型的基础上使python发送请求后获得反馈,当没有数据时去执行后面的代码,一段时间后再次询问,从当有数据的获得数据的copy,这就是非阻塞IO模型,避免了阻塞状态。
1,但是非阻塞模型IO模型需要占用大量的cpu,并且使用效率并不高,需要不断询问kernel数据是否准备完毕,
2,由于使用轮询的方式,而任务可能在轮询中的任意位置出现,会导致整体数据的吞吐量降低。所以非阻塞IO并不被推荐使用
3,多路复用IO(multiplexing)
多路复用IO模型是利用代理处理阻塞问题,代理能够处理多个链接,因此更支持多线访问情况。
主义是事项:
1,如果处理的连接数不是很高的情况使用多路复用不一定比blocking效率高,可能延迟性更大,其优势是在更多的连接情况。
4,异步IO
一般都是操作系统处理机制的一种,操作系统自动使用。
标签:zzu 导致 atm 大量 iso rtb emc wrk xid
原文地址:https://www.cnblogs.com/wpcbk/p/9058314.html