Java FIFO队列实现

时间:2013-04-24 19:38:41

标签: java queue

有没有人知道Java中是否有FIFO队列实现,或者是否允许用户设置最大大小的任何其他库,并且当队列满了时会自动拒绝任何请求?

我已经看过guava队列实现了,但是从我看到它将会在队列满时删除队列中的第一个元素,而不是拒绝请求。

3 个答案:

答案 0 :(得分:1)

大多数内置队列都是这样做的。我建议使用ArrayBlockingQueue,因为它非常适合有限的大小,但您也可以使用LinkedBlockingQueue。 BlockingDeque也支持限制。

BTW如果您正在使用带有线程的队列,我建议您使用ExecutorService,因为它将这些组合在一起。

答案 1 :(得分:0)

在简单队列上使用装饰器模式,例如:
Queue<String> queue = new LinkedList<String>();

您的包装器代码将确保强制最大尺寸拒绝额外添加。

答案 2 :(得分:0)

int size=500;
Queue<String> = new ArrayBlockingQueue<>(size);