摘要: 说明: 说明: 对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说,当一个read操作发生时,它会经历两个阶段: 1. 等待数据准备 (Waiting for the data to be ready) 2. 将 阅读全文
posted @ 2018-01-05 15:48 kevin.Xiang 阅读(522) 评论(0) 推荐(0)
摘要: 注:Unix \ Linux 环境下的network IO 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证 阅读全文
posted @ 2018-01-05 15:29 kevin.Xiang 阅读(980) 评论(0) 推荐(0)
摘要: 事件驱动 事件驱动 gevent协程可实现自动切换,协程在遇到IO时会进行切换,到另外一个请求,那协程是如何得知在什么时候在切换回去呢? 通常,我们写服务器处理模型的程序时,有以下几种模型: (1)每收到一个请求,创建一个新的进程,来处理该请求; (2)每收到一个请求,创建一个新的线程,来处理该请求 阅读全文
posted @ 2018-01-05 15:23 kevin.Xiang 阅读(2005) 评论(0) 推荐(0)
摘要: socket多并发 socket可以实现单个客户端进行请求访问,它可以通过socketserver来实现并发功能呢,socketserver是通过启用多线程实现并发,在这里我们也可以通过gevent协程来实现单个线程下的多并发。 socket server: import gevent from g 阅读全文
posted @ 2018-01-05 15:10 kevin.Xiang 阅读(3341) 评论(0) 推荐(0)