2013-04-24 2 views
0

Кто-нибудь знает, есть ли реализация очереди FIFO в Java или любая другая библиотека, которая позволяет пользователям устанавливать максимальный размер и автоматически отклоняет любые запросы, когда очередь заполняется?Реализация очереди Java FIFO

Я посмотрел на реализацию очереди guava, но из того, что я видел, он удалит первый элемент в очереди, когда он будет заполнен, а не отклонит запрос.

+0

[BlockingQueue] (http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/BlockingQueue.html) –

+0

Какая реализация очереди гуавы? –

ответ

1

Большинство встроенных очередей делают это. Я предлагаю ArrayBlockingQueue, поскольку это естественная подгонка ограниченного размера, но вы также можете использовать LinkedBlockingQueue. BlockingDeque (s) также поддерживают лимит.

BTW Если вы используете очередь с потоком, я предлагаю вам использовать ExecutorService, поскольку он объединяет их в одном.

+0

Я посмотрел на ArrayBlockingQueue, но я не могу найти способ установить размер. Вы знаете, где я могу найти это? – user1899174

+1

Невозможно создать ArrayBlockingQueue, не придавая ему возможности. Просто попробуйте создать его. –

0

Используйте шаблон декоратора над простой очереди, такие как:
Queue<String> queue = new LinkedList<String>();

Ваш код обертка будет убедиться, что максимальный размер вынужден отвергнуть дополнительные дополнения.

Смежные вопросы