linux - select() 是阻塞调用还是非阻塞调用
问题描述
当它传递带有超时值的参数时,可以说它select()
是非阻塞的吗?struct timeval
当该参数为 NULL 时,它是阻塞的。
解决方案
公平地说 select() 在传递带有超时值的 struct timeval 参数时是非阻塞的吗?
否。在这种情况下,它一直在等待,直到选定的文件描述符之一准备好或达到超时。这种“等待”显然是阻塞的。
这是非阻塞的唯一情况是如果超时为 0,即给定的tv_sec
和设置为 0。tv_usec
timeval
推荐阅读
- flutter - Flutter main() 运行两次
- heroku - Fixie:使用 Heroku 的静态 IP 地址
- c++ - 实施的 `operator<` 仍然给出错误 - 'operator <' 不匹配(操作类型是 const StorageFile' 和 'const StorageFile')
- scala - 如何将此“2020 年 6 月 10 日星期三 10:16:24 GMT”转换为“2020-05-10T12:30:45”datetimestr 格式
- opencv - 保留调整大小的分段手写数字的特征
- kubernetes - 为什么 Kubernetes 会报告:“configmap references non-existent config key”?
- apache-flink - Flink Async IO 算子调优/微基准
- javascript - 我在使用 fetch() 时遇到问题,无法获取数据
- c - 如何读取用户选择的文本文件
- c - C:为什么这个char数组的地址是6字节?