Предел LinkedBlockingQueue игнорируется? - PullRequest
0 голосов
/ 04 мая 2010

Я создал Java LinkedBlockingQueue, например, новый LinkedBlockingQueue (1), чтобы ограничить размер очереди до 1. Однако в моем тестировании это, кажется, игнорируется, и в любой момент времени в очереди часто находятся несколько вещей. Почему это?

Ответы [ 2 ]

0 голосов
/ 20 ноября 2015
LinkedBlockingQueue<String> queue = new LinkedBlockingQueue<String>(5);
queue.add("ddd");
queue.count // =5
queue.size // =1
queue.remainingCapacity() // =4
0 голосов
/ 04 мая 2010

Как проверялось количество записей в очереди? Если вы вызываете size (), он всегда должен возвращать 0 или 1.

Когда очередь достигает емкости, вызов put () просто блокируется. Если у вас очень короткие задачи, это может создать иллюзию того, что в очереди находятся несколько вещей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...