文档结构

  • 1、概念简介

1、概念简介

常见的 IO模型:
1)同步阻塞IO(Blocking IO):即传统的IO模型。
2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。
3)IO多路复用(IO MulTIplexing):即经典的Reactor设计模式,有时也称为异步阻塞IO,Java中的Selector和Linux中的epoll都是这种模型。
4)异步IO(Asynchronous IO):即经典的Proactor设计模式,也称为异步非阻塞IO。

最典型的IO多路复用技术有select、poll、epoll等。select具有最大数量描述符限制,而epoll则没有,并且在机制上,epoll也更为高效。select的优势仅仅是跨平台支持性,所有平台和较低版本的内核都支持select模式,epoll则不是。

#1、输入操作:read、readv、recv、recvfrom、recvmsg共5个函数,如果会阻塞状态,则会经理wait data和copy data两个阶段,如果设置为非阻塞则在wait 不到data时抛出异常

#2、输出操作:write、writev、send、sendto、sendmsg共5个函数,在发送缓冲区满了会阻塞在原地,如果设置为非阻塞,则会抛出异常

#3、接收外来链接:accept,与输入操作类似

#4、发起外出链接:connect,与输出操作类似

============================================= over ============================================

Python-IO多路复用相关推荐

  1. python -- IO多路复用

    python之路--IO模型 阅读目录 一 IO模型介绍 二 阻塞IO(blocking IO) 三 非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) ...

  2. python io多路复用_python实现IO多路复用 --- selector

    IO多路复用 O多路复用技术是使用一个可以同时监视多个IO阻塞的中间人去监视这些不同的IO对象,这些被监视的任何一个或多个IO对象有消息返回,都将会触发这个中间人将这些有消息IO对象返回,以供获取他们 ...

  3. python io多路复用_Python之IO多路复用

    一.IO模型介绍 ​ 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这 ...

  4. python io多路复用_【python】-- IO多路复用(select、poll、epoll)介绍及实现

    IO多路复用(select.poll.epoll)介绍及select.epoll的实现 IO多路复用中包括 select.pool.epoll,这些都属于同步,还不属于异步 一.IO多路复用介绍 1. ...

  5. python io多路复用框架_python之IO多路复用

    同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别? 不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network IO. ...

  6. php io select,Python IO多路复用之——select方案服务端和客户端代码【python源码详解】...

    准备文件: IO.py  服务端代码 tcp_c.py 客户端代码 IO.py 代码: from select import * #引入 select 模块 from socket import * ...

  7. python IO多路复用源码

    # #非阻塞 # from socket import * # from time import sleep,ctime # s=socket() # s.bind(('0.0.0.0',7895)) ...

  8. python io多路复用

    用for循环执行多用户访问 SEVER import socket sk1 = socket.socket() sk1.bind(('127.0.0.1', 888)) sk1.listen() im ...

  9. Python网络编程:IO多路复用

    io多路复用:可以监听多个文件描述符(socket对象)(文件句柄),一旦文件句柄出现变化,即可感知. 1 sk1 = socket.socket() 2 sk1.bind(('127.0.0.1', ...

  10. IO多路复用select/poll/epoll详解以及在Python中的应用

    IO multiplexing(IO多路复用) IO多路复用,有些地方称之为event driven IO(事件驱动IO). 它的好处在于单个进程可以处理多个网络IO请求.select/epoll这两 ...

最新文章

  1. SHELL基础学习必杀技之十三问
  2. 干了10年软件工程师,我学到10个教训
  3. Lazy Load, 延迟加载图片的 jQuery 插件
  4. Jenkins2021持续部署
  5. java异步处理_SpringBoot异步开发之异步请求,在高并发的情况下,提高性能
  6. 1276: 求和游戏
  7. java多态和继承_Java学习--继承与多态
  8. div 包裹_如何查看到达之前收到的包裹和邮件
  9. CCKS 2019 | 百度 CTO 王海峰详解知识图谱与语义理解
  10. google 浏览器默认打开控制台_chrome浏览器使用 Console(控制台)
  11. Spring 框架 IOC 与 DI 的总结
  12. linux glibc安装mysql_Linux安装MySQL-5.6.24-1.linux_glibc2.5.x86_64.rpm
  13. sql raiserror_SQL Server PRINT和SQL Server RAISERROR语句
  14. 面试—每日一题(1)
  15. boost升压电路遇到过的问题
  16. 如何高效率安排你的时间?Mac精品日程管理软件推荐
  17. 国内商务邮箱品牌——TOM企业邮箱
  18. 如何查看连接过的WiFi密码?详细教程(配图片)!
  19. 多旋翼无人机ROSC++开发例程(四):基于Prometheus开源项目与Casadi开源优化求解器的模型预测控制简单应用例程
  20. TS - 勉强入个门儿

热门文章

  1. 今天编写了淘宝客生成工具
  2. 华笙(华升)5.1,5.2,6.3
  3. 自己写的gaptool(Lua版本)
  4. mysql口径,分析跑数口径与表内在关系逻辑
  5. CentOS8 DNF的使用
  6. c语言initializers,too many initializers
  7. qrencode生成二维码\微信开源算法识别opencv-contrib(一)
  8. Oracle学习——建表语法结构以及数据类型
  9. 在OPTEE+AOSP下编写原生Android安全程序
  10. 服务安全-中间件-ApacheTomcatNginx