背景其实是传统的producer, consumer case:
producers 会产生三种不同priority 的events,
consumers 必须1. 总是优先处理高priority的event, 2.同priority的events按先来
后到处理。
刚开始的设想是用priorityblockingqueue, 方便快捷
第一个concern是: priorityblockingqueue无法保证同priority的events能按先来后
到处理。
这个可以通过rewrite comparator解决
第二个concern比较大: priorityblockingqueue是用heap实现的, enqueue and
dequeue都是 log(n) 的操作,
对于我们的大数据量大约是不妥的
现在的想法是只好化简为繁作三个seperate FIFO queues, 分别对应high, medium,
low priority。
好处是dequeue, enqueue都是 O(1)了
坏处是似乎producers, comsumer之间的signalling只好我自己来做了?
除了wait, notify什么的, 还有别的选择吗?
有什么需要注意的吗?