Изменяемый размер Java BlockingQueue - PullRequest
7 голосов
/ 06 июля 2011

Так что я использую BlockingQueue фиксированного размера [ArrayBlockingQueue] в приложении типа производитель / потребитель, но я хочу, чтобы пользователь мог изменять размер очереди на лету. Проблема в том, что нет реализации BlockingQueue, которая позволяет изменять емкость после создания. Кто-нибудь когда-нибудь сталкивался с этим раньше? Есть идеи?

Ответы [ 2 ]

2 голосов
/ 06 июля 2011

Наиболее очевидным решением (может или не может быть уместным в зависимости от ваших обстоятельств) было бы просто создать новую очередь с обновленной емкостью, которую вы хотите.Затем вставьте все из старой очереди в новую.

1 голос
/ 06 июля 2011

Вы можете расширить LinkedBlockingQueue. Его предел - это мягкий предел (т. Е. Просто дополнительная проверка), и вы можете сделать что-то, что вы можете изменить (отключив встроенный и вставив свой собственный)

...