-1
我需要能够从队列中重新排序或删除项目,这些项目将添加项目并被监视,项目被另一个任务添加。该程序正在使用Dataflow库,我想知道是否有人有任何经验,可以请见解或示例如何实现?并发队列删除同步或重新排序项目
我需要能够从队列中重新排序或删除项目,这些项目将添加项目并被监视,项目被另一个任务添加。该程序正在使用Dataflow库,我想知道是否有人有任何经验,可以请见解或示例如何实现?并发队列删除同步或重新排序项目
除了您正在使用的库的细节外,您正在处理的任务并不完整,因为重新排序是一项全局任务,只有当所有元素都可用时才能完成。
有排序数组和列表的并发方法,例如mergeSort实际上可以用并发模型进行扩展,但是在排序开始时元素需要全部可用。
另一方面,随着元素可用于订购流程,您可以通过在增长的数据结构上进行精确插入来保留部分列表。
所以,我只会将队列用作缓冲区,这是生产者任务向订单任务异步发送元素的一种方式。排序任务然后保持另一个结构,最有可能是一个双链表或其他强连接的结构,在插入时提供良好的性能,并使用它在队列中可用时立即将新元素添加到正确的位置他们不在队列中)。