- 整体来讲
同/异步:主要是指程序进程间的协作关系
IO/NIO:是指的单个进程中的IO关系-
同步:用户程序和内核发生的IO交互,需要等待IO操作完成(或者后台轮询等待)
同步有阻塞和非阻塞,IO多路 -
异步:发生IO操作后不需要等待IO操作完成就返回,待IO完后会通知进程;
异步不存在阻塞 -
区分:
同步操作:数据通过网络到达内核,内核数据接收完成,用户线程去将数据copy到用户内存中
异步操作:数据到达内核,接收完成后,内核处理将数据copy到提前指定的用户内存中
-
阻塞模型图-帮助理解
- 同步阻塞
- 同步非阻塞
- IO多路复用
-