| 项目 | 值 |
|---|---|
| 阻塞IO | IO 未完成时进程被阻塞,释放 CPU |
| 非阻塞IO | IO 未完成时立即返回,进程继续执行 |
| 默认方式 | 大多数 OS 默认阻塞 IO |
| 非阻塞用途 | 轮询检查 IO 状态 |
| 模型 | IO 未完成时 | CPU 利用 | 编程复杂度 |
|---|---|---|---|
| 阻塞IO | 进程阻塞 | 高(释放CPU) | 低 |
| 非阻塞IO | 立即返回 | 低(轮询忙等) | 中 |
| IO多路复用 | select/epoll 阻塞 | 高 | 高 |
| 异步IO | 立即返回+回调 | 最高 | 最高 |
| 对比项 | 阻塞IO | 非阻塞IO |
|---|---|---|
| IO 未完成时 | 进程阻塞 | 立即返回 |
| CPU 利用 | 高 | 低(轮询) |
| 编程模型 | 简单 | 复杂 |
| 适用场景 | 通用 | 需要并发处理 |
| 考法 | 解题套路 |
|---|---|
| 阻塞 vs 非阻塞 | 阻塞释放 CPU(高效),非阻塞忙等(浪费 CPU) |
| 默认 IO 方式 | 大多数 OS 默认阻塞 IO |
| IO 多路复用 | select/epoll 同时监听多个 fd |
| 异步 IO | 发起后立即返回,完成后回调通知 |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。