一、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
最近这两天都在看IO相关的知识点.一开始太凌乱,太杂,不过终于整理清楚了.觉得杂乱是因为一开始以为异步IO等于非阻塞IO,这完全是两个概念, LINUX下的异步IO有两类,一类为glibc AIO,这类AIO是通过线程回调模拟,没细究;另一类是native AIO,是LINUX内核支持的,但只支持直 ...
分类:
其他好文 时间:
2018-02-08 20:15:58
阅读次数:
210
Selector是SelectableChannel的多路选择器,配合SelectableChannel实现非阻塞IO. 详见代码 Selector 和 SelectableChannel间通过SelectionKey表示注册关系: SelectorProvider SelectorProvider ...
分类:
编程语言 时间:
2018-02-04 22:45:56
阅读次数:
186
转自:http://blog.csdn.net/skiof007/article/details/52873421 IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个Se ...
分类:
其他好文 时间:
2018-01-23 20:28:08
阅读次数:
160
阅读目录 一 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
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在 JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务 端进行通信,默认情况下服务端需要对每个请求建立一堆线程 ...
分类:
其他好文 时间:
2018-01-09 12:55:51
阅读次数:
182
传统IO: 1) 面向流的工作方式,类似于生活中的水流,可以完成运输,单向运输 2) 阻塞IO NIO: 1) NIO支持面向缓冲区的、基于通道的IO操作 2) 非阻塞IO 3) 选择器 注: 通道仅用于连接,不能用于运输,本身无数据,必须依赖缓冲区用于数据传输 怎么用通道进行连接?怎么用缓冲区存储 ...
分类:
其他好文 时间:
2018-01-03 19:45:11
阅读次数:
138
1 什么是java nio java nio就是java非阻塞io。 2 什么是channel channel是到打开的文件的连接,只要是支持读写操作的实体都可以称为文件,文件可以是硬件设备、文件和网络套接字等。 3 多路复用非阻塞IO的实现原理 3.1 Selector、selection key ...
分类:
编程语言 时间:
2017-12-25 15:04:36
阅读次数:
151
nginx与php-fpm是不是以多进程多线程方式运行的?Nginx 是非阻塞IO & IO复用模型,通过操作系统提供的类似 epoll 的功能,可以在一个线程里处理多个客户端的请求。Nginx 的进程就是线程,即每个进程里只有一个线程,但这一个线程可以服务多个客户端。PHP-FPM 是阻塞的单线程模型,pm.max_children 指定的是最大的进程数量,pm.max_requests
分类:
Web程序 时间:
2017-12-21 18:13:56
阅读次数:
237
转载:IO复用\阻塞IO\非阻塞IO\同步IO\异步IO 一、 什么是IO复用? 它是内核提供的一种同时监控多个文件描述符状态改变的一种能力;例如当进程需要操作多个IO相关描述符时(例如服务器程序要同时查看监听socket和大量业务socket是否有数据到来),需要内核能够监控这许多描述符,一旦这些 ...
分类:
其他好文 时间:
2017-11-27 15:19:39
阅读次数:
94