Linux I/O models:修订间差异
imported>Soleverlee 无编辑摘要 |
imported>Soleverlee |
||
第1行: | 第1行: | ||
*阻塞I/O(blocking I/O) | |||
*非阻塞I/O (nonblocking I/O) | |||
*I/O复用(select 和poll) (I/O multiplexing) | |||
*信号驱动I/O (signal driven I/O (SIGIO)) | |||
*异步I/O (asynchronous I/O (the POSIX aio_functions)) | |||
前四种都是同步,只有最后一种才是异步IO。 | |||
=blocking IO= | =blocking IO= | ||
阻塞IO模型是最常见的IO模型了,对于所有的“慢速设备”(socket、pipe、fifo、terminal)的IO默认的方式都是阻塞的方式。阻塞就是进程放弃cpu,让给其他进程使用cpu。进程阻塞最显著的表现就是“进程睡眠了”。阻塞的时间通常取决于“数据”是否到来。 | 阻塞IO模型是最常见的IO模型了,对于所有的“慢速设备”(socket、pipe、fifo、terminal)的IO默认的方式都是阻塞的方式。阻塞就是进程放弃cpu,让给其他进程使用cpu。进程阻塞最显著的表现就是“进程睡眠了”。阻塞的时间通常取决于“数据”是否到来。 |
2016年8月19日 (五) 01:18的版本
- 阻塞I/O(blocking I/O)
- 非阻塞I/O (nonblocking I/O)
- I/O复用(select 和poll) (I/O multiplexing)
- 信号驱动I/O (signal driven I/O (SIGIO))
- 异步I/O (asynchronous I/O (the POSIX aio_functions))
前四种都是同步,只有最后一种才是异步IO。
blocking IO
阻塞IO模型是最常见的IO模型了,对于所有的“慢速设备”(socket、pipe、fifo、terminal)的IO默认的方式都是阻塞的方式。阻塞就是进程放弃cpu,让给其他进程使用cpu。进程阻塞最显著的表现就是“进程睡眠了”。阻塞的时间通常取决于“数据”是否到来。