c - 带有 NULL 超时的 select() 是否比带有超时的 select() 更轻?

标签 c select

我想知道该代码是否:

select(fd,..., NULL);

比那个消耗更少的CPU:

struct timeval tv;
tv.tv_sec = X;
tv_tv_usec = Y;
select(fd,..., &tv);

以及为什么。谢谢。

编辑:我问的是一个电话。这是一个系统调用,因此它依赖于系统,并且由系统来解锁 select()ing 程序。那么,对于系统来说,在有或没有超时的情况下完成选择是否会消耗更多的CPU?

最佳答案

两者都不是“更轻”。 select 是一个系统调用,当监视的文件描述符之一发生事件或发生超时(如果提供)时,它将指示操作系统唤醒您的任务。使用 NULL 超时进行选择将无限期地选择,直到发生监视的文件描述符事件或进程以其他方式中断。

关于c - 带有 NULL 超时的 select() 是否比带有超时的 select() 更轻?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25809290/

相关文章:

c - 使用预处理器输出作为内联汇编

c - 在 C (Eclipse) 中获得 sqlite3 功能

mysql - 即使 Select 为空也返回结果

mysql - 有什么方法可以删除重复的 SELECT 语句?

php - 生成 6k mySQL 查询的代码当然可以优化

forms - CakePHP - 输入选择不从变量中获取选择选项

c++ - 代码覆盖率不好

c - C语言中如果改变指针会释放多少内存?

c++ - 测量可执行文件的数据和指令缓存的大小

mysql - 获取表中最新行的最佳实践