Google让我很头疼这个搜索词。带插入优先级的非优先队列
我需要一个线程安全机制来实现以下功能。 插入优先级高于读取的线程安全列表。
我需要总是能够插入一条消息(比方说)到队列(或其他),偶尔能够读取。因此,阅读,永远不会干涉插入。
谢谢。
编辑:阅读也意味着清除红色部分。
编辑2:也许有用,有一个单一的读者和一个作家。编辑3:案例场景:每秒插入10次,持续1分钟(或使用软件所在硬件的最大可能值)。然后插入1分钟的暂停。然后在2秒内插入20次插入(或最大可能使用软件所在的硬件),持续30秒。然后暂停30秒。然后暂停用于最大读取次数。我不知道我是否足够清楚。很明显不是。 (PS:我不知道什么时候会出现暂停,那就是问题)。最大acc。延迟插入:Enqueue或Add方法完成的时间。
附加:可以使用具有带TryGetValue和TryRemove的AddOrUpdate的ConcurrentDictionary吗?
如果没有限制性约束,该队列可以在没有限制和耗尽所有内存的情况下增长,此时插入*必须*失败或等待。那么队列中的消息数量是否有实际的上限或类似? –
@sll你编辑了什么? (我看,标签) –
@Damien_The_Unbeliever有,但这里的重要部分是插入优先级。在身体上,不能在队列中留下“太多”的消息。 –