gpt4 book ai didi

c++ - 使基于选择的循环尽可能响应

转载 作者:太空狗 更新时间:2023-10-29 21:50:47 27 4
gpt4 key购买 nike

此线程对网络事件非常敏感,但可以保证每秒处理消息队列的频率仅为 100 次。我可以继续减少超时,但在某个时间点之后我将忙于等待并消耗 CPU。在不切换到另一种方法的情况下,这个解决方案真的和我能得到的一样好吗?

// semi pseudocode
while (1) {
process_thread_message_queue(); // function returns near-instantly
struct timeval t;
t.tv_sec = 0;
t.tv_usec = 10 * 1000; // 10ms = 0.01s
if (select(n,&fdset,0,0,t)) // see if there are incoming packets for next 1/100 sec
{
... // respond with more packets or processing
}
}

最佳答案

这取决于您的操作系统为您提供的功能。在 Windows 上,您可以使用 MsgWaitForMultipleObjectsEx 等待线程消息和一堆句柄同时。这解决了你的问题。在其他操作系统上,您应该有类似的东西。

关于c++ - 使基于选择的循环尽可能响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5387697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com