Linux IO模式及 select、poll、epoll详解 <!-- end .post-topheader --> 注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不 ...
分类:
系统相关 时间:
2017-06-27 14:53:39
阅读次数:
247
阻塞IO和非阻塞IO: 阻塞IO:在代码进行 read() 调用时,代码会阻塞直至有可供读取的数据。同样, write()调用将会阻塞直至数据能够写入。换句话说,当你发了一个请求(或方法调用)之后,必须等待,直到程序返回结果,这段期间不能干其他事情。Everything is in sequence ...
分类:
编程语言 时间:
2017-06-23 13:06:17
阅读次数:
206
sys 模块 sys.argv 命令行参数List,第一个元素是程序本身路径,通常用来避免io 阻塞 sys.exit(n) 退出程序,正常退出时exit(0) sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 logging 模块 默认情况下Python的logg ...
分类:
Web程序 时间:
2017-06-22 21:55:18
阅读次数:
273
一、阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 本文讨论的背景是Linux环境下的network IO。 1.概念说明 在进行解释之前,首先要 ...
分类:
编程语言 时间:
2017-06-10 20:29:48
阅读次数:
216
一、I/O模型 IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。 同步(synchronous) IO和异步(asynchronous) IO,阻塞(block ...
分类:
编程语言 时间:
2017-05-20 17:25:55
阅读次数:
243
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO ...
分类:
系统相关 时间:
2017-03-14 13:12:43
阅读次数:
264
相关概念:缓冲区和通道 解释:标准的IO流是基于字节流和字符流的而NIO是基于通道和缓冲区的,数据总是从通道读取到缓冲区或者从缓冲区读取到通道的。 相关概念:非阻塞IO 解释:当线程从通道读取数据到缓冲区时线程同事还可以进行其他的事情。 相关概念:selectors(选择器) 解释:单个线程可以监听 ...
分类:
编程语言 时间:
2017-02-08 12:55:43
阅读次数:
154
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO ...
分类:
其他好文 时间:
2017-02-02 21:55:51
阅读次数:
290
同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 一 概念说明 在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- 文件描述符- 缓存 I/O 用户空间与内核空间 现在操作 ...
分类:
编程语言 时间:
2016-12-24 11:53:22
阅读次数:
217
阻塞IO机制:使用等待队列 1.定义等待队列头 wait_queue_head_t read_wait; 2.初始化等待队列头 init_waitqueue_head(wait_queue_head_t *q); 3.让进程等待int wait_event(wait_queue_head_t wq ...
分类:
系统相关 时间:
2016-12-11 15:53:58
阅读次数:
187