首页 > 解决方案 > 从一个描述符进行非阻塞读取的效率

问题描述

我开发了一个 C 程序,它监视来自不同来源的传入消息并根据消息进行处理。我的职责是只等待一个来源。
当然,等待必须是非阻塞的。

这样做最有效的方法是什么?

  1. 一个非阻塞的 read() ?

  2. 选择/轮询/epoll 方式?

好吧,如果消耗的 CPU/时间大致相同,我会选择更简单的选项,即读取选项。谢谢。

标签: cselectread-write

解决方案


select文件描述符超时。如果您的选择超时是无限的,请改用阻塞读取。如果您的选择有超时但您的程序没有执行任何其他操作,请改用阻塞读取。


推荐阅读