文档结构

  • 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. python编程在哪里写-Python自带的IDE在哪里
  2. 第二篇: Mysql____语法格式——键值
  3. 安装sql server 2008 报错
  4. 阿里云开发大会——体验云效智能代码补全
  5. openwrt 3g模块上网
  6. Linux Page Cache参数调优在kafka中的应用
  7. 网络不通时自动重启网卡的脚本
  8. win7资源服务器未响应,win7电脑怎么设置服务器未响应
  9. GIF动态图片分解,多帧动态图分解成多张静态图片
  10. RabbitMQ 使用的AMQP模型解析
  11. iOS·NSObject的两种含义:类与协议
  12. 在数据增强、蒸馏剪枝下ERNIE3.0分类模型性能提升
  13. Java菜鸟如何入门?1分钟入门
  14. Windows 10 (Win10) 将绿色免安装软件,添加到动态磁贴
  15. 5款神级软件,装机必备,不看后悔
  16. sun.misc.BASE64Encoder详解
  17. kubernetes监控检查(探针)
  18. 佳佳的筷子 Chopsticks
  19. Markdown 如何让图片居中
  20. 【输出N行杨辉三角形】两种输出方式(直角三角形型和等腰三角形型)C语言

热门文章

  1. PXE批量装机详细教程
  2. 植物大战僵尸:寻找阳光掉落Call
  3. 车胎检测气压表胎压计芯片方案
  4. Python pandas导excel数据量太大报错问题
  5. 随时随地一键开会,华为云会议大幅提升用户开会体验
  6. 线上展厅空间感案例 广交会布展
  7. EN 16034: 防火门CE认证
  8. 计算机cmd复制粘贴指令,Win7在命令提示符(cmd.exe)中如何进行复制、粘贴工作
  9. 对角占优阵的行列式大于零的证明
  10. 构建Simulink模型 | 油门与制动