IO 多路复用: 用户空间与内核空间: 操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的 所有权限;为了保证用户进程不能直接操作内核,操作系统将虚拟空间划分为两部分:1.内核空间,2.用 户空间,Linux将1G的空间划分为内核空间,3G的为用户空间 文件 ...
分类:
其他好文 时间:
2018-06-09 20:33:12
阅读次数:
153
阶段大纲: 一.爬虫 1.基本操作 —登录任意网站(伪造浏览器的任何行为) 2.性能相关 —并发方案: —异步IO:gevent/Twisted/asyncio/aiohttp —自定义异步IO 模块 —IO多路复用:select 3.Scrapy框架 介绍:异步IO:Twisted —基于scra ...
分类:
其他好文 时间:
2018-06-07 22:54:22
阅读次数:
202
一、TCP协议 TCP (Transmission Control Protocol)属于传输层协议,TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后 ...
分类:
其他好文 时间:
2018-06-05 13:29:08
阅读次数:
161
select模块: selectors: 模拟多个客户端和服务器交互数据: ...
分类:
其他好文 时间:
2018-06-03 23:42:04
阅读次数:
187
阻塞、非阻塞、同步、异步IO http://www.cnblogs.com/yunxitalk/p/9031306.html 介绍 在谈及网络IO的时候总避不开阻塞、非阻塞、同步、异步、IO多路复用、select、poll、epoll等这几个词语。在面试的时候也会被经常问到这几个的区别。本文就来讲一 ...
分类:
其他好文 时间:
2018-05-19 00:15:28
阅读次数:
121
阅读目录 一 IO模型介绍 二 阻塞IO(blocking IO) 三 非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) 五 异步IO(Asynchronous I/O) 六 IO模型比较分析 七 selectors模块 IO模型介绍 为了更好地了解I ...
分类:
编程语言 时间:
2018-05-18 20:15:19
阅读次数:
221
1. BIO JDK5之前, JDK的IO模式只有BIO(同步阻塞)问题: 因为阻塞的存在, 需对每个请求开启一个线程. 过多的线程切换影响操作系统性能解决: 使用线程池, 处理不过来的放入队列, 再处理不过来的会触发其他机制问题: 超过线程池数量的请求需要等待 服务端1: 一个请求~一个线程 服务 ...
分类:
编程语言 时间:
2018-05-18 11:23:06
阅读次数:
317
一、单线程为何这么快 1)绝大部分请求是纯粹的内存操作(非常快速) 2)采用单线程,避免了不必要的上下文切换和竞争条件 3)非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪 ...
分类:
编程语言 时间:
2018-05-18 01:27:14
阅读次数:
217
一、用户空间I/O操作的两个阶段1、等待数据准备阶段此阶段主要是将数据先加载至内核空间(内存缓冲区)2、数据从内核复制到进程的阶段此阶段主要是将数据从内核空间(内存缓冲区)复制到用户空间中进程的内存中去二、五种网络I/O模型1、BlockingI/O,阻塞I/O2、Non-blockingI/O,非阻塞I/O3、I/Omultiplexing,多路复用I/O4、AsynchronousI/O,异步
分类:
系统相关 时间:
2018-05-17 23:22:47
阅读次数:
232