io即读写html
1,同步IO(同步):有数据时,recvfrom等待数据复制好是同步IO异步
2,阻塞IO(同步):没有数据时recvfrom也一直等待数据到来是阻塞IO函数
3,非阻塞IO(同步):recvfrom没有数据就不等,能够作别的事,不时检查有没有数据到来非阻塞IOcode
4,IO复用模型(同步):select调用数据(select的做用是有数据时能够告诉recvfrom)但只告知有数据了,数据在哪里还须要找一找,recefrom再调用数据就必定有数据(若是是用eopll调用,就能够直接知道数据在哪里)htm
5,信号驱动IO模型(同步):创建SIGIO信号处理程序,有数据时就能够递交SIGIO,等内核数据准备好的时候系统中断当前程序再recvfrom调用数据blog
6,异步IO模型:进程
调用aio_read,让内核等数据准备好,而且复制到用户进程空间后执行事先指定好的函数。E同窗让舍管阿姨将杯子装满水后通知他。整个过程E同窗均可以作别的事情(没有recv),这才是真正的异步IO。get
IO分两阶段:同步
1.数据准备阶段 2.内核空间复制回用户进程缓冲区阶段
通常来说:阻塞IO模型、非阻塞IO模型、IO复用模型(select/poll/epoll)、信号驱动IO模型都属于同步IO,由于阶段2是阻塞的(尽管时间很短)。只有异步IO模型是符合POSIX异步IO操做含义的,无论在阶段1仍是阶段2均可以干别的事。io