linux网络IO模型

  • 阻塞IO模型   所有的IO操作都是阻塞的,在进程空间调用recvfrom,其系统调用一直等到数据包到达且复制到应用进程的缓冲区
  • 非阻塞IO模型 recvform从应用层到内核的时候,如果缓冲区没有数据的时候,就直接返回一个错误信号,一般是对非阻塞IO去轮询这个状态
  • IO多路复用   linux提供select/poll,进程通过一个或多个fd传递给select或poll系统调用,阻塞在select操作上,侦测fd是否处于就绪状态,顺序扫描。epoll使用基于事件驱动代替顺序扫描,性能更高。
  • 信号驱动IO模型 当数据准备就绪时,就为该进程生产一个信号,通过信号回调调用receform来读取数据。
  • 异步IO  数据已拷贝到应用进程缓冲区。
posted @ 2019-05-18 16:39  lzf715  阅读(93)  评论(0)    收藏  举报