IO模型

 

  堵塞(Blocking) Non-blocking(非堵塞)
同步(Synchronous) Read/Write Read/Write(O_NONBLOCK)
异步(Asynchronous) I/O multiplexing(select/poll/epoll) AIO(aio.h )

 

  • select/poll/epoll是属于堵塞的异步IO,也就是调用这些函数,主线程会堵塞,知道有IO准备好或timeout
  • EAGAIN使用不O_NONBLOCK的fd,标识当前没有可用数据
  • AIO完全没有堵塞,通过信号或回调函数,当数据准备好时,直接调用回调函数或触发时间。
posted @ 2012-01-03 19:43  bourneli  阅读(176)  评论(0编辑  收藏  举报