我想知道 POSIX select() 调用中的超时值。我理解为什么人们可能想要 0 值(用于轮询文件描述符)。通常使用哪些其他值,以及用于什么目的?
问问题
208 次
1 回答
0
请注意,对于多路复用目的, poll(2)通常比select(2)更好(因为这FD_SETSIZE
是对最高文件描述符的严格限制)。
您将使用的实际超时取决于具体情况。在许多 GUI小部件工具包框架中,您知道屏幕以 50 或 60Hz 的频率刷新,因此您可能会相应地设置超时(例如,设置为 20 毫秒)。或者你知道鼠标应该每秒至少跟随 10 次,等等。在实践中,这些工具包也有超时,因此在事件循环 的每个循环中动态计算poll
或超时。在 Web 服务器中,超时是可配置的,程序会 相应地计算超时。select
poll
在实践中, poll(2)或select(2)通常超过一毫秒,并且可能低于几十秒。YMMV。顺便说一句,确切的超时通常不是很重要。
另请参阅Norvig在十年内自学编程网页的答案部分(非常有趣的读物)。
于 2016-11-04T16:31:06.647 回答