同步/异步
关注的是事件处理的消息通信机制,在等待一件事情的处理结果时,被调用者是否提供完成通知
-
同步
调用者等待被调用者返回消息后才能继续执行,如果被调用者不提供消息返回则为同步,同步需要调用者主动询问事件是否完成
进程发出请求后,内核不提供通知机制,即文件完成IO不通知进程,需要进程主动询问内核
-
异步
被调用者通过状态、通知和回调机制主动通知调用者,即异步会主动返回被调用者状态给调用者
进程发出请求后,内核会在调用处理完成后返回调用结果给进程
阻塞/非阻塞
关注调用者在等待结果返回之前所处的状态
- 阻塞
指IO操作需要彻底完成后才返回到用户空间,调用结果返回之前,调用者被挂起 - 非阻塞
指IO操作被调用后立即返回给用户一个状态值,无需等到IO操作彻底完成,最终的调用结果返回之前,调用者不被挂起,可以继续处理其他事件