【发布时间】:2018-03-08 21:26:36
【问题描述】:
我有点困惑。 epoll 是否需要轮询循环检查 fd 是否准备就绪? 是否完全同步 I/O 操作意味着浪费 CPU 周期? 最后;如果 i/o 准备好,是否可以获得通知内核的完全异步 I/O 方法?
【问题讨论】:
-
同步和异步具体是什么意思?这些词在编程中可以有几种不同的含义。
-
究竟是否需要cpu周期?
-
你似乎有点困惑。在等待某些东西时,使用 select/epoll 的同步和异步调用都有效地等待(即阻塞调用线程)。
-
Martin 我试着了解内核是异步检查 io 就绪还是轮询?
-
内核不检查“I/O 就绪”。 I/O 完成(或错误:) 通过硬件中断发出信号,该中断导致驱动程序代码运行,并且可以使您的等待线程准备好/运行,无论它如何等待、同步调用、异步等待用 select/epoll 什么的。
标签: c linux asynchronous synchronization epoll