自定义IO异步基础知识: --所有的请求都基于socket实现,一个请求就是一个socket socket.setblocking(False) 不需要阻塞,一个请求完了发送另外一个,会报错,需解决 --IO多路复用[是同步的请求] IO多路复用有epoll, poll, select,知道epol... ...
分类:
编程语言 时间:
2018-08-05 13:03:37
阅读次数:
181
import selectors import socket sel = selectors.DefaultSelector() def accept(sock, mask): conn, addr = sock.accept() # Should be ready print('accepted' ...
分类:
编程语言 时间:
2018-08-04 18:56:17
阅读次数:
155
1.io模型提交任务得方式: 同步:提交完任务,等结果,执行下一个任务 异步:提交完,接着执行,异步 + 回调 异步不等结果,提交完任务,任务执行完后,会自动触发回调函数同步不等于阻塞: 阻塞:遇到io,自己不处理,os会抢走cpu ,解决办法:监测到io,gevent切换到其他任务,类似欺骗os ... ...
分类:
其他好文 时间:
2018-08-01 18:14:11
阅读次数:
150
TCP: UDP: 粘包现象: socket socketserver socketserver内部使用io多路复用,以及多线程和多进程,从而实现并发处理多个客户端请求的socket服务端 即:每个客户端请求连接到服务器时,socket服务端都会在服务器端创建一个线程或者进程,负责处理对应的客户端请 ...
分类:
其他好文 时间:
2018-07-30 13:28:58
阅读次数:
170
select是全平台通用的IO多路复用模块。最大连接数:1024。poll和epoll没有最大连接数限制,但只能用在linux平台。selectors是再封装模块,推荐使用。下篇会讨论。select.select(rlist,wlist,xlist[,timeout])?ThisisastraightforwardinterfacetotheUnixselect()systemcall.Thefi
分类:
其他好文 时间:
2018-07-26 11:37:39
阅读次数:
202
body, table{font family: 微软雅黑; font size: 13.5pt} table{border collapse: collapse; border: solid gray; border width: 2px 0 2px 0;} th{border: 1px soli ...
分类:
其他好文 时间:
2018-07-25 22:02:27
阅读次数:
146
同步,异步,阻塞,非阻塞,阻塞式IO,非阻塞式IO,IO多路复用,信号驱动IO,异步IO ...
分类:
编程语言 时间:
2018-07-25 11:32:02
阅读次数:
163
一、linux的IO复用函数同一个线程内,多个描述符的IO操作,能够并发交替地顺序执行。epoll只提供三个函数:int epoll_create(int size); #创建epoll句柄int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);关联被监听的事件和epool句柄(可以通过op参数来增加,删除和修改关联关系
分类:
其他好文 时间:
2018-07-24 10:18:02
阅读次数:
147
执行结果:只要启动服务器端,然后不同的客户端多次启动都能收到信息,多个端口成功被监听 2. 下面使用select模块实现多路复用,使同一个端口同时接收多个链接 启动这个服务端之后,就可以实现多路复用了,可以接收多个客户端同时连接 3.下面介绍一些多路操作里面的读写分离 这样可以形成简单的读写分离操作 ...
分类:
编程语言 时间:
2018-07-22 17:12:36
阅读次数:
193