IO多路复用 多个socket是否已经发生变化,(是否已经连接成功/是否已经获得数据)(可读/可写) 实现: 1. IO多路复用 2. 非阻塞 代码如下: ...
分类:
编程语言 时间:
2019-09-14 10:55:58
阅读次数:
79
前言 早期操作系统通常将进程中可创建的线程数限制在一个较低的阈值,大约几百个。因此, 操作系统会提供一些高效的方法来实现多路IO,例如Unix的select和poll。现代操作系统中,线程数已经得到了极大的提升,如NPTL线程软件包可支持数十万的线程。 I/O多路复用 select select 允 ...
分类:
其他好文 时间:
2019-09-09 14:41:09
阅读次数:
72
``` import selectors import threading import socket import datetime import logging from queue import Queue logging.basicConfig(level=logging.INFO, for... ...
分类:
其他好文 时间:
2019-09-08 09:50:34
阅读次数:
76
http2新特性 1. 二进制帧 http1 header是纯文本传输, http2是二进制 2. 多路复用 http2 把HTTP消息分解成独立的帧, 交错传输, 然后在另一端组装 http1 一个链接 每次只能发送一个请求, 得到响应后再发送另一个请求 3. 头部压缩 springboot2.x ...
分类:
其他好文 时间:
2019-09-01 19:01:47
阅读次数:
98
Redis 单线程高性能,它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性能损耗问题。redis利用epoll来实现IO多路复用,将连接信息和事件放到队列中,依次放到文件事件分派器,事件分派器将事件分发给事件处理器。 1.Redis数据结构及简单操作指令 Stri ...
分类:
其他好文 时间:
2019-09-01 18:35:28
阅读次数:
108
net/http 包涵盖了与 HTTP 请求发送和处理的相关代码。虽然包中定义了大量类型、函数,但最重要、最基础的概念只有两个:ServeMux 和 Handler。 ServeMux 是 HTTP 请求多路复用器(即路由器,HTTP request router),记录着请求路由表。对于每一个到来 ...
分类:
Web程序 时间:
2019-08-26 00:07:25
阅读次数:
171
响应头和响应体是用两个换行分割的 sk.setblock(False) 不阻塞 host是IP 比如www.baidu.com也是host,IP地址也是 r,w,e=select.select() w是连接成功的socket对象 r是有数据返回的socket对象 IO多路复用:r,w,e=while ...
分类:
其他好文 时间:
2019-08-25 01:14:21
阅读次数:
96
1、setblocking(0):无数据(连接无响应;数据未返回)就报错 2、IO多路复用 ...
分类:
其他好文 时间:
2019-08-25 00:50:55
阅读次数:
73
微信公众号【黄小斜】作者是蚂蚁金服 JAVA 工程师,专注于 JAVA 后端技术栈:SpringBoot、SSM全家桶、MySQL、分布式、中间件、微服务,同时也懂点投资理财,坚持学习和写作,相信终身学习的力量!关注公众号后回复”架构师“即可领取 Java基础、进阶、项目和架构师等免费学习资料,更有 ...
分类:
编程语言 时间:
2019-08-23 20:49:44
阅读次数:
124
从事服务端开发,少不了要接触网络编程。epoll 作为 Linux 下高性能网络服务器的必备技术至关重要,nginx、Redis、Skynet 和大部分游戏服务器都使用到这一多路复用技术。 epoll 很重要,但是 epoll 与 select 的区别是什么呢?epoll 高效的原因是什么? 网上虽 ...
分类:
其他好文 时间:
2019-08-22 13:28:40
阅读次数:
126