python-IO多路复用,select模块
触发机制:1)水平触发;2)边缘触发
IO多路复用单线程实现并发,实现模块:1)select(效率最低); 2)poll;3)epoll(最好,nginx的实现)。linux下有这3种模块,windows下只有select模块
IO多路复用的好处:同时可以监听多个连接
IO多路复用的select模块触发机制:水平触发
PS:异步:整个过程中,不能有一丝的阻塞
client端:
import socketsk = socket.socket() sk.connect(('127.0.0.1', 8801))while True:inp = input(">>>>")sk.sendall(bytes(inp, "utf8"))data = sk.recv(1024)print(str(data, 'utf8'))
server端:
import socket import select sk=socket.socket() sk.bind(("127.0.0.1",8801)) sk.listen(5) inputs=[sk,] while True:r,w,e=select.select(inputs,[],[],5)for obj in r:#[sk,]if obj==sk:conn,add=obj.accept()print(conn)inputs.append(conn)else:data_byte=obj.recv(1024)print(str(data_byte,'utf8'))inp=input('回答%s号客户>>>'%inputs.index(obj))obj.sendall(bytes(inp,'utf8'))print('>>',r)
转载于:https://www.cnblogs.com/benchdog/p/9189647.html
python-IO多路复用,select模块相关推荐
- python io多路复用_【python】-- IO多路复用(select、poll、epoll)介绍及实现
IO多路复用(select.poll.epoll)介绍及select.epoll的实现 IO多路复用中包括 select.pool.epoll,这些都属于同步,还不属于异步 一.IO多路复用介绍 1. ...
- linux IO多路复用 select epoll
概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程 通俗理解(摘自网上一大神) 这些名词比较绕口,理解涵义就好.一个epoll场景:一个酒吧服务员(一个线程),前 ...
- python io多路复用_Python之IO多路复用
一.IO模型介绍 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这 ...
- 深入理解python中的select模块
简介 Python中的select模块专注于I/O多路复用,提供了select poll epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqueue ...
- python select模块_深入理解python中的select模块
简介 Python中的select模块专注于I/O多路复用,提供了select poll epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kque ...
- IO多路复用select/poll/epoll详解以及在Python中的应用
IO multiplexing(IO多路复用) IO多路复用,有些地方称之为event driven IO(事件驱动IO). 它的好处在于单个进程可以处理多个网络IO请求.select/epoll这两 ...
- Python异步非阻塞IO多路复用Select/Poll/Epoll使用
来源:http://www.haiyun.me/archives/1056.html 有许多封装好的异步非阻塞IO多路复用框架,底层在linux基于最新的epoll实现,为了更好的使用,了解其底层原理 ...
- php io select,Python IO多路复用之——select方案服务端和客户端代码【python源码详解】...
准备文件: IO.py 服务端代码 tcp_c.py 客户端代码 IO.py 代码: from select import * #引入 select 模块 from socket import * ...
- python -- IO多路复用
python之路--IO模型 阅读目录 一 IO模型介绍 二 阻塞IO(blocking IO) 三 非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) ...
- python io多路复用_python实现IO多路复用 --- selector
IO多路复用 O多路复用技术是使用一个可以同时监视多个IO阻塞的中间人去监视这些不同的IO对象,这些被监视的任何一个或多个IO对象有消息返回,都将会触发这个中间人将这些有消息IO对象返回,以供获取他们 ...
最新文章
- Hibernate 中lazy的作用
- java中 set集合_第8篇 Java中的集合(Set)
- 修改了xml要不要重新起服务器,关于设置:Eclipse每次运行项目时都会修改server.xml(运行-在服务器上运行)...
- 手机浏览器网址_苹果手机怎么登两个微信
- 微信iOS 7.0.9版本更新:今天的朋友圈是一片欢乐的海洋!
- 又错过了暴富的机会!亚马逊AWS突发Bug,比特币现史诗级捡漏机会?
- 牛津英语3a_空中课堂 | 牛津英语3A学霸笔记 (全) 附3B
- vs2005常用快捷键_包括代码自动缩进
- Hadoop学习记录(6)|Eclipse安装Hadoop 插件
- cesium 文本标注被遮挡_Cesium-知识点(Viewer)
- java版的贪吃蛇。
- eclipse下properties配置文件中文乱码解决
- 虚拟机RedHat9.0挂载U盘
- 微机原理与接口技术实验
- 将多个Excel工作簿合并到一个Excel工作簿中
- 【无标题】timescale为传输预设时间,使用geo和meo,为什么程序最后的预设时间加3呢?
- 视频基本术语介绍 码流、帧率、分辨率、I帧、带宽
- app inventor调用图像识别_项目实战-图像识别项目-通过QT制作图形界面并调用百度AI进行图像识别(一)...
- JAVA下载和安装详细过程
- MBA案例分析: 美国西南航空的十年发展战略规划