gpt4 book ai didi

c - 遍历不断变化的事件列表

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:36:01 24 4
gpt4 key购买 nike

我有一个机器列表,我根据它们的响应时间对它们进行 ping。最初所有机器每 t 毫秒被 ping 5 次。根据每台机器上这 5 个 ping 的响应时间,我调整 ping 的时间以延长或缩短它,直到达到这样的配置:

machine1: t1....t2....t3....t4....t5
machine2: t1......t2......t3......t4......t5
..
machineN: ..t1..t2..t3..t4..t5
^
|machine needs to be pinged at this tick

t1..tN 表示时钟的(毫秒)滴答声。

很明显,每台机器都有一个线程来执行 ping,但由于机器的数量,这不是最佳解决方案。

相反,一个线程遍历事件的全局顺序是可取的,如下所示:

while(true){

fetch_next_machine_to_be_pinged();
ping_it();

if(any_machine_pinged_5_times());
reorder_events(); //adjust the time of its next 5 ping

//continue
}

实现此目标的最佳方法是什么? (ps:C语言)。

最佳答案

我会使用 priority queue .

在任何时候,队列都将包含每台机器的一个条目。条目 M 的“优先级”将是机器 M 接下来需要 ping 的时间戳,有效负载将是一些标识机器的 token (以便您知道谁ping)。

关于c - 遍历不断变化的事件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6774795/

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