一、IO模型: 1.blocking IO 阻塞IO 2.nonblocking IO 非阻塞IO 3.IO multiplexing IO多路复用 4.signal driven IO 信号驱动IO 5.asynchronous IO 异步IO 二、阻塞IO(blocking IO) 在linux ...
分类:
编程语言 时间:
2018-02-09 17:20:38
阅读次数:
173
这两篇文章分析了Linux下的5种IO模型 http://blog.csdn.net/historyasamirror/article/details/5778378 http://blog.csdn.net/hguisu/article/details/7453390 很多人对阻塞 / 非阻塞, ...
分类:
其他好文 时间:
2018-01-30 16:55:02
阅读次数:
156
阅读目录 一 背景知识 二 同步、异步、回调机制 三 高性能 一 背景知识 爬虫的本质就是一个socket客户端与服务端的通信过程,如果我们有多个url待爬取,只用一个线程且采用串行的方式执行,那只能等待爬取一个结束后才能继续下一个,效率会非常低。 需要强调的是:对于单线程下串行N个任务,并不完全等 ...
分类:
其他好文 时间:
2018-01-22 16:08:20
阅读次数:
236
对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说,当一个read操作发生时,它会经历两个阶段:1. 等待数据准备 (Waiting for the data to be ready)2. 将数据从内核拷贝到进程 ...
分类:
其他好文 时间:
2018-01-20 16:33:35
阅读次数:
156
转载请注明来源:http://blog.csdn.net/caoshiying?viewmode=contents 一、回想重叠IO模型 用完毕例程来实现重叠I/O比用事件通知简单得多。在这个模型中,主线程仅仅用不停的接受连接就可以;辅助线程推断有没有新的client连接被建立,假设有。就为那个cl ...
分类:
其他好文 时间:
2018-01-18 22:07:14
阅读次数:
203
阅读目录 一 IO模型介绍 二 阻塞IO(blocking IO) 三 非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) 五 异步IO(Asynchronous I/O) 六 IO模型比较分析 七 selectors模块 一 IO模型介绍 为了更好地了 ...
分类:
编程语言 时间:
2018-01-18 00:58:08
阅读次数:
212
阅读目录 一 背景知识 二 python并发编程之多进程 三 python并发编程之多线程 四 python并发编程之协程 五 python并发编程之IO模型 六 补充:paramiko模块 七 作业 一 背景知识 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源 ...
分类:
编程语言 时间:
2018-01-18 00:48:06
阅读次数:
273
使用异步io实现只使用单进程,单线程的socket。处理多个用户的请求。 先简单说明一下select异步io工作原理: select 是一个跨平台的异步io模型,由于我们计算机的硬盘速度,远远低于我们内存的速度,因此如果同时有多个用户来请求数据时候,io效率就会变得更慢。 而select 是一直不断 ...
分类:
编程语言 时间:
2018-01-13 17:00:25
阅读次数:
198
Nginx:Nginx本身是一款静态WWW软件(html,js,css,jpg)静态小文件高并发,同时占用的资源少。基于异步IO模型epoll特点:1、wwwweb服务http802、负载均衡(反向反向代理proxy)3、webcache(web缓存)优点:0、配置更简单,更灵活1、高并发(静态小文件并发1-2W)2、占用资源少(2W并发开10个线程服务内存消耗几百M)3、功能种类比较多(web,
分类:
其他好文 时间:
2018-01-08 17:29:41
阅读次数:
200
参考文档 https://www.jianshu.com/p/486b0965c296 一 概念说明 用户空间和内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间 ...
分类:
其他好文 时间:
2017-12-25 13:36:46
阅读次数:
108