首先是关于IO多路复用的基础概念: select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写 ...
分类:
系统相关 时间:
2018-05-06 00:15:59
阅读次数:
247
线程、进程、队列、IO多路模型 操作系统工作原理介绍、线程、进程演化史、特点、区别、互斥锁、信号、事件、join、GIL、进程间通信、管道、队列。生产者消息者模型、异步模型、IO多路复用模型、select\poll\epoll 高性能IO模型源码实例解析、高并发FTP server开发``` 一、问 ...
分类:
其他好文 时间:
2018-05-04 01:32:44
阅读次数:
548
一 IO模型: Stevens在文章中一共比较了五种IO Model: 再说一下IO发生时涉及的对象和步骤。对于一个network IO (这里我们以read举例),它会涉及到两个系统对象,一个是调用这个IO的process (or thread),另一个就是系统内核(kernel)。当一个read ...
分类:
其他好文 时间:
2018-05-02 17:27:51
阅读次数:
144
在socket中,如果直接创建的话,是只能接受一个用户的请求需要实现socketserver中的handle方法,可以实现多进程并发访问SocketServer内部使用IO多路复用以及“多线程”和“多进程”,从而实现并发处理多个客户端请求的Socket服务端。即:每个客户端请求连接到服务器时,Socket服务端都会在服务器是创建一个“线程”或者“进程”专门负责处理当前客户端的所有请求。1、创建一个
分类:
编程语言 时间:
2018-04-29 17:49:47
阅读次数:
207
性能相关 在编写爬虫时,性能的消耗主要在IO请求中,当单进程单线程模式下请求URL时必然会引起等待,从而使得请求整体变慢。 import requests def fetch_async(url): response = requests.get(url) return response url_l ...
分类:
其他好文 时间:
2018-04-09 23:19:43
阅读次数:
489
一直以来,PHP很少用于socket编程,毕竟是一门脚本语言,效率会成为很大的瓶颈,但是不能说PHP就无法用于socket编程,也不能说PHP的socket编程性能就有多么的低,例如知名的一款PHP socket框架 workerman 就是用纯PHP开发,并且号称拥有优秀的性能,所以在某些环境下, ...
分类:
Web程序 时间:
2018-04-07 12:57:45
阅读次数:
304
1.io模型提交任务得方式: 同步:提交完任务,等结果,执行下一个任务 异步:提交完,接着执行,异步 + 回调 异步不等结果,提交完任务,任务执行完后,会自动触发回调函数同步不等于阻塞: 阻塞:遇到io,自己不处理,os会抢走cpu ,解决办法:监测到io,gevent切换到其他任务,类似欺骗os ...
分类:
其他好文 时间:
2018-04-05 15:51:42
阅读次数:
154
Nginx(engine x)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。功能:1.高性能的HTTP Server,解决c10k的问题2.高性能的反向代理服务器,给网站加速3.做为LB集群的前端一个负载均衡器nginx的优势 IO多路复用理论:1.最传统的多进程并发模型 (每进来一个新的I/O流会分配一个新的进程管理。)2.I/O多路复用 (单个
分类:
系统相关 时间:
2018-04-01 19:52:49
阅读次数:
213
#coding=utf-8 #IO多路复用 #必须在非阻塞状态下才能使用socket的多路复用 import select import socket import sys import Queue sever = socket.socket() sever.bind(('localhost',90... ...
分类:
其他好文 时间:
2018-03-25 23:06:24
阅读次数:
360
Epoll是Linux IO多路复用的管理机制。作为现在Linux平台高性能网络IO必要的组件。内核的实现可以参照:fs/eventpoll.c .为什么需要自己实现epoll呢?现在自己打算做一个用户态的协议栈。采用单线程的模式。https://github.com/wangbojing/NtyTcp,至于为什么要实现用户态协议栈?可以自行百度C10M的问题。由于协议栈做到了用户态故
分类:
其他好文 时间:
2018-03-25 15:52:04
阅读次数:
239