1.加权轮询调度
WeightedRoundRobinMultiplexer
/**
* Determines which queue to start reading from, occasionally drawing from
* low-priority queues in order to prevent starvation. Given the pull pattern
* [9, 4, 1] for 3 queues:
*
* The cycle is (a minimum of) 9+4+1=14 reads.
* Queue 0 is read (at least) 9 times
* Queue 1 is read (at least) 4 times
* Queue 2 is read (at least) 1 time
* Repeat
*
* There may be more reads than the minimum due to race conditions. This is
* allowed by design for performance reasons.
*/
/**
*确定从哪个队列开始读取,偶尔从中抽取
*低优先级队列,以防止饥饿。 鉴于拉动模式
* [9,4,1]为3个队列:
*
*周期是(最少)9 + 4 + 1 = 14次读数。
*队列0被读取(至少)9次
*队列1被读取(至少)4次
*队列2被读取(至少)1次
*重复
*
*由于竞争条件,可能会有比最小值更多的读数。 这是
*出于性能原因,设计允许。
*/
本文探讨了加权轮询调度机制,详细解释了如何通过分配不同权重来平衡多个队列间的读取频率,防止队列饥饿现象。以[9,4,1]为例,阐述了在满足最低读取次数的基础上,如何灵活应对竞争条件带来的额外读取需求。
2921

被折叠的 条评论
为什么被折叠?



