IO概念 Linux的内核将所有外部设备都可以看做一个文件来操作。那么我们对与外部设备的操作都可以看做对文件进行操作。我们对一个文件的读写,都通过调用内核提供的系统调用;内核给我们返回一个file descriptor(fd,文件描述符)。而对一个socket的读写也会有相应的描述符,称为socke ...
分类:
系统相关 时间:
2017-07-09 17:22:24
阅读次数:
245
在Linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时 ...
分类:
其他好文 时间:
2017-07-09 17:17:58
阅读次数:
176
Select\Poll\Epoll异步IO select 多并发socket 例子 1 import select 2 import socket 3 import sys 4 import queue 5 6 7 server = socket.socket() 8 server.setblock ...
分类:
数据库 时间:
2017-07-03 16:33:38
阅读次数:
375
首先列一下,sellect、poll、epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续 ...
分类:
编程语言 时间:
2017-07-02 11:36:38
阅读次数:
142
转:https://zhidao.baidu.com/question/687563051895364284.html以一个生活中的例子来解释. 假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好了在A号楼门口见面. 如果你使用的阻塞IO模型来 ...
分类:
其他好文 时间:
2017-07-01 12:48:43
阅读次数:
222
http框架丢弃http请求包体和上一篇文章http框架接收包体, 都是由http框架提供的两个方法,供http各个模块调用,从而决定对包体做什么处理。是选择丢弃还是接收,都是由模块决定的。例如静态资源模块,如果接收到来自浏览器的get请求,请求某个文件时,则直接返回这个文件内容给浏览器就可以了。没... ...
分类:
Web程序 时间:
2017-06-30 15:26:23
阅读次数:
157
好久没用I/O复用了,感觉差点儿相同都快忘完了。记得当初刚学I/O复用的时候花了好多时间。可是因为那会不太爱写博客,导致花非常多时间搞明确的东西,依旧非常easy忘记。俗话说眼过千遍不如手过一遍,的确。在以后的学习中,不管知识的难易亦或是重要程度怎样。我都会尽量义博客的形式记录下来,这样即能用博客来 ...
分类:
系统相关 时间:
2017-06-30 13:53:00
阅读次数:
265
和前面文章的第一部分一样,这些文字是为了帮别人或者自己理清思路的。而不是所谓的源代码分析。想分析源代码的,还是直接debug源代码最好,看不论什么文档以及书都是下策。因此这类帮人理清思路的文章尽可能的记成流水的方式,尽可能的简单明了。Linux 2.6+内核的wakeup callback机制Lin ...
分类:
系统相关 时间:
2017-06-30 09:38:56
阅读次数:
262
user www-data; worker_processes auto; pid /run/nginx.pid; events { use epoll; worker_connections 1024; } http { include mime.types; default_type appli... ...
分类:
其他好文 时间:
2017-06-28 11:50:22
阅读次数:
153
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说 ...
分类:
其他好文 时间:
2017-06-27 19:58:00
阅读次数:
223