【发布时间】:2017-03-14 03:10:38
【问题描述】:
我正在使用轮询机制来管理多达 100 个连接。对于 poll() 调用的超时值应该是多少或如何确定它是否有任何标准做法。
我的案例详情 -
我有一个调度线程监听所有的连接。一旦连接准备好读取,我将禁用它以进行轮询并将 connfd 转发到处理读取的线程池。调度程序线程返回轮询。
线程池使用 connfd 上的读取并将其发送回调度程序,以便它可以添加它以进行下一步轮询。但是调度程序在从 poll() 调用返回之前无法将其添加到轮询中。我需要调度程序定期检查它是否需要重新启用对任何 connfd 的轮询。
什么是好的超时值,以便调度程序线程可以定期停止轮询并更新其 pollfd 列表。
【问题讨论】:
标签: c++ multithreading sockets polling epoll