ome*_*dat 3 java queue performance
我有一个线程池,从队列中提供任务.通常,少量线程能够将队列保持为空.偶尔,特别大的事件突发会使队列大小在零上保持一段时间,但不会持续很长时间.
我担心的是重复的事件或携带废弃以前事件的数据.在高容量时,这样的事件可以在队列中共存很短的时间.我希望能够将这些内容混为一谈,以便减少浪费时间.
混淆这样一个队列的好方法是什么?我可以在插入时通过从头到尾迭代并寻找替换的候选者来混淆,但这似乎太暴力了.如果您有代码或库建议,请记住我使用的是Java.
为什么不根据您的任务实现hashCode()和equals().然后只需删除任务.例如.
queue.remove(task);
queue.offer(task);
Run Code Online (Sandbox Code Playgroud)
那你就不会有重复了.或者.
if(!queue.contains(task)) {
queue.offer(task);
}
Run Code Online (Sandbox Code Playgroud)
如果任务已经在队列中,这将避免将任务排入队列.
| 归档时间: |
|
| 查看次数: |
2509 次 |
| 最近记录: |