我遇到了this问题,并且在实际情况下您真正想要使用来自多个线程的堆栈,而不是FIFO队列或优先级队列。我觉得LIFO属性在跨多个线程使用时非常合适。除了最近放在那里的东西之外,你真的不能保证你从堆栈中得到什么。难道这不会大大匮乏堆栈/队列中的旧东西吗?
答案 0 :(得分:2)
我可以想到,在对最近到达的工作做出回应被认为更有用的情况下,这可能是有用的。一种“高优先级中断”模型,在时间允许的情况下检查和处理旧项目。
我可以想象实现以这种方式工作的Stack Overflow信誉收集机器人。单线程输入将新问题提供到堆栈中 - 线程池弹出并快速响应最近的问题,并检查和回答较旧的问题,如果还没有已接受的答案,并且通过新问题到达时没有更可行的声誉机会。