我有一组订单对象。该集合将被侦听订单插入/更新的侦听器添加或更新。同时,监听器还监听由熵变化引起的属性变化(顺序状态)。
例如,更改是客户信用评级会将该客户的所有订单更新为暂停状态。在任一类型的更新中,侦听器都会在单个调度程序线程上更新订单集合。计划的线程克隆并处理订单集合以定期更新UI。
要求是:
这种情况的推荐数据结构和执行策略是什么?我们正在使用Java 7。
答案 0 :(得分:0)
一个简单的解决方案就是使用两个独立的队列(一个'直播'队列和一个'队列)。
作者可以决定写一个' live'或批量'队列。用户界面可以先从“直播”中读取。排队,当“生活”时队列是空的,切换到批量'排队(同时仍然检查读取之间的'直播队列)。
您也可以以这种方式实现实际的优先级队列。只需将行为封装在单个队列接口后面。
答案 1 :(得分:0)
听起来像是队列结构的任务和单独的类似列表的索引,以非阻塞方式重新排序。
答案 2 :(得分:0)
I would probably implement a task queue ,where priority is given to order updates.The UI refresh thread will process the queue ,working on order updates first.