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完全没有堵塞,通过信号或回调函数,当数据准备好时,直接调用回调函数或触发时间。
原文地址:https://www.cnblogs.com/bourneli/p/2311247.html