文章目录
异步IO是什么?
异步IO(Asynchronous I/O)是一种非阻塞的输入输出操作模式,允许程序在发起IO请求后不等待操作完成,而是继续执行后续任务。
什么是IO请示,什么是阻塞?
IO请求是程序与外部设备(如磁盘、网络、键盘等)进行数据交互时向操作系统内核发起的系统调用。例如读取文件内容或发送网络数据时,程序会通过系统调用请求内核完成实际的输入/输出操作。IO请求分为两个阶段:
- 等待资源阶段:内核检查设备是否就绪(如磁盘是否找到数据)
- 使用资源阶段:内核将数据从设备缓冲区复制到用户空间
阻塞指程序在等待IO操作完成时暂停执行后续代码,直到操作完成。例如:
- 同步阻塞IO:程序调用
read()
读取文件时,若数据未准备好,线程会挂起等待,无法处理其他任务 - 生活类比:排队买奶茶时,必须站在原地等待制作完成才能离开
阻塞与非阻塞对比
类型 | 行为特点 | 资源消耗 | 适用场景</ |
---|