自定义ConcurrentPriorityQueue实现与并发测试问题求助
关于ConcurrentPriorityQueue并发实现与测试的问题
背景与实现概述
- 个人练习实现了泛型类
ConcurrentPriorityQueue<TElement, TPriority>,需满足以下特性:- 数值越大的优先级,元素出队优先级越高
- 同优先级元素遵循FIFO出队顺序
- 具备线程安全性
- 泛型参数顺序为
TElement在前、TPriority在后(区别于.NET内置PriorityQueue)
- 实现方式:通过
ConcurrentDictionary<TPriority, ConcurrentQueue<TElement>>存储不同优先级对应的队列,完全依赖System.Collections.Concurrent下的集合类
遇到的问题
- 单线程简单场景测试已通过,但并发测试用例执行失败,出现键缺失错误
- 并发测试逻辑:启动多任务并发执行入队、出队操作,预期最终队列总计数为0,但实际未达成预期结果
咨询内容
- 我的
ConcurrentPriorityQueue实现代码或测试代码是否存在错误? - 当前的并发测试设计是否合理?有没有更优的并发测试策略?
内容的提问来源于stack exchange,提问作者alelom
相关产品推荐
相关产品推荐

