libevent是一个基于事件驱动的高性能网络库。支持多种I/O多路复用技术,epoll、poll、dev/poll、select和kqueue等;支持I/O,定时器和信号等事件;注册事件优先级。有效安排I/O,时间和信号的扩展使用可用于特定平台的最佳I/O通知机制的事件,是PHP基础设施的libevent端口。libe..
分类:
Web程序 时间:
2017-04-23 21:14:14
阅读次数:
1103
socketserver内部使用IO多路复用及多线程和多进程,从而实现并发处理多个客户端请求的socket服务端。即:每个客户端请求连接到服务器时,socket服务端都会在服务器创建一个线程或者进程专门负责处理当前客户端的所有请求。 import socketserver class MyTCPHa ...
分类:
其他好文 时间:
2017-04-20 16:07:20
阅读次数:
125
1) 同步阻塞IO(Blocking IO)2) 同步非阻塞IO(Non-blocking IO)3) IO多路复用(IO Multiplexing)4) 异步IO(Asynchronous IO) 注意以下概念: 1.同步/异步 同步和异步区分了请求与响应的交互中, 获取响应的方式同步: 请求某种 ...
分类:
其他好文 时间:
2017-04-17 09:53:47
阅读次数:
248
IO多路复用 selcet import socket import select sk=socket.socket() sk.bind(("127.0.0.1",8001)) sk.listen(5) sk1=socket.socket() sk1.bind(("127.0.0.1",8002)) ...
分类:
其他好文 时间:
2017-04-17 00:02:01
阅读次数:
195
#运行用户userwww-data;#启动进程,通常设置成和cpu的数量相等worker_processes1;#全局错误日志及PID文件error_log/var/log/nginx/error.log;pid/var/run/nginx.pid;#工作模式及连接数上限events{useepoll;#epoll是多路复用IO(I/OMultiplexing)中的一种方式,但是仅用于linux2.6..
分类:
其他好文 时间:
2017-04-14 15:07:54
阅读次数:
223
1.数据库 Redis的所有数据库都保存在redisServer.db数组中,数据库主要是由两个字典组成:dict字典,负责保存键值对;expires,负责保存键的过期时间 Redis使用惰性删除和定期删除两种方式处理过期键:惰性删除是指在碰到了过期键才将其删除,定期删除是指每隔一段时间主动查找并删 ...
分类:
其他好文 时间:
2017-04-11 11:33:50
阅读次数:
210
tornado使用了单进程(当然也可以多进程) + 协程 + I/O多路复用的机制,解决了C10K中因为过多的线程(进程)的上下文切换 而导致的cpu资源的浪费。 tornado中的I/O多路复用前面已经讲过了。本文不做详细解释。 来看一下tornado中的协程模块:tornado.gen: tor ...
分类:
其他好文 时间:
2017-04-10 19:17:08
阅读次数:
273
需求: 流程图 import socket import pickle import sys import time import os A = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) class Ftp_client( ...
分类:
其他好文 时间:
2017-04-10 11:01:35
阅读次数:
247
3. I/O多路复用:select函数 3.1 I/O多路复用简介 (1)通信领域的时分多路复用 (2)I/O多路复用(I/O multiplexing) ①同一线程,通过“拨开关”方式,来同时处理多个I/O流,哪个IO准备就绪就把开关拨向它。(I/O多路复用类似于通信领域中的“时分复用”) ②通过 ...
分类:
其他好文 时间:
2017-04-09 09:46:17
阅读次数:
361