1.同步或异步是进程间协作的一种方式,二者区别在于调用后能否立即返回;阻塞与非阻塞是进程运行可能出现的状态。两者是不同维度的概念。
2.假如程序运行期间因数据交互出现阻塞,就是同步;反之。
以上两条套用在Linux的5种IO模型上:
同步类型I/O:
(1)阻塞I/O
(2)非阻塞I/O(进程自己轮询)
(3)I/O复用(基于FD轮询)
(4)信号驱动I/O(基于事件驱动)
异步类型I/O:
(5)异步I/O
这里的同步、异步是指在数据从内核空间到用户进程空间。同步方式需要调用recvFrom函数,同步等待数据从内核数据拷贝到进程空间;异步方式,通知数据报准备完毕,操作系统 把数据送到指定的用户进程空间。