首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优先队列同时防止应变

优先队列同时防止应变
EN

Stack Overflow用户
提问于 2016-09-28 17:26:21
回答 1查看 612关注 0票数 0

我的问题是:

我有成千上万的传感器要检测。每个传感器都有一个轮询间隔(不是固定的,而是随时间变化的)。

所以我需要对他们进行一个又一个的有效的调查。

为此,我可以使用一个优先级队列(以轮询时间戳作为密钥)。

问题是传感器可以被忽略:

例如,如果有一个传感器需要每15分钟进行一次轮询,并且有大量传感器需要每5分钟进行一次轮询,那么优先级队列可能会比第一个优先队列更适合它们。

因此,我可以使用很少的优先级队列,而不是一个,但如何选择下一个传感器投票的问题仍然存在。

什么是解决我的问题的理想方法?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-09-28 17:43:20

以下是解决您的问题的方法:

1)如果您需要处理大量不同的优先级,那么使用单个优先级队列是可取的。基本上,在等待一段时间之后,您需要将低优先级作业的优先级提高到较高优先级的作业。这样你就可以无限期地处理低优先级的工作,但是如果有很多低优先级的工作,你可能会暂时饿死高优先级的工作。

2)当可用的优先级作业种类有限时,最好使用多个队列。现在,这些队列中的每一个都有特定的优先级作业。因此,对于每个从低优先级队列中提取的任务,您可以从高优先级队列中轮询多个作业。这有助于降低低优先工作的饥饿率。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39754025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档