首页  

网络IO模型     所属分类 nio 浏览量 876
阻塞IO  非阻塞IO   多路复用IO  信号驱动IO  异步IO

阻塞IO          BIO bloking IO   
非阻塞IO        NIO non-blocking IO
多路复用IO      multiplexing IO   select poll epoll
信号驱动式IO    signal-driven IO
异步IO         AIO asynchronous IO

POSIX 定义
同步I/O操作(synchronous I/O operation) 请求进程阻塞,直到I/O操作完成
异步I/O操作(asynchronous I/O operation)请求进程不会阻塞
除了异步IO  ,其他都是 同步IO


用户进程/线程 Process/Thread 内核 Kernel 网络IO socket流读取 ,两个步骤 1 等待网络数据分组到达,复制到内核缓冲区 2 把数据从内核缓冲区复制到应用进程缓冲区 阻塞IO 两个阶段的操作都是阻塞的 非阻塞IO 第一个阶段不会阻塞 多路复用IO select poll epoll , 以较少的代价同时监听处理多个IO linux提供select/poll,进程将一个或多个fd传递给select或poll系统调用,阻塞在select 侦测多个fd是否就绪 select/poll 顺序扫描fd是否就绪,支持的fd数量有限 epoll系统调用,基于事件驱动方式,fd就绪时,立即回调函数rollback 信号驱动 内核在FD就绪时发送SIGIO信号 异步IO linux网络IO处理的第二阶段总是阻塞等待数据copy完成 真正意义上的网络异步IO是Windows下的IOCP 信号驱动IO VS 异步IO 信号驱动IO 由内核通知何时启动一个IO操作 异步IO 由内核通知IO操作何时完成
几种IO比较
select poll epoll 区别

上一篇     下一篇
linux sysstat

jvm到底能运行多少个线程

aerospike数据删除机制

G1调优建议

检查硬盘是否为SSD

NIO概述