gpt4 book ai didi

c - Linux epoll如何检查就绪fd : Sync or Async?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:44:40 26 4
gpt4 key购买 nike

我有点懵。 epoll 是否需要轮询循环来检查 fd 是否准备就绪?完全同步的 I/O 操作是否意味着浪费 cpu 周期?最后;是否有可能获得完全异步的 I/O 方法来通知内核 I/O 是否准备就绪?

最佳答案

Does epoll require polling loops checking if fd is ready ?

是的。您调用 epoll_wait 函数,它会等待直到任何 FD 准备就绪,然后告诉您哪些 FD 准备就绪。

Is it completely synchronous I/O operation

取决于您所说的“同步”是什么意思。 epoll_wait 将等待,除非你给它一个 0 毫秒的超时。

that means wasting cpu cycles or not ?

不,它没有。

Finally; is it possible to obtain completely asynchronous I/O method that notifies kernel if i/o is ready ?

当 I/O 就绪时,您不会尝试通知内核,它已经知道了。您正在尝试让内核在 I/O 就绪时通知您的程序。

对于“完全异步通知”you can get the kernel to send you a SIGIO signal - 信号是完全异步的通知。但是您实际上并不想要那样,因为在不产生死锁的情况下进行编程是一件令人头疼的事情。如果您确实使用了它,您可能最终会将信号转换回某种同步通知。

关于c - Linux epoll如何检查就绪fd : Sync or Async?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49182737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com