Я использую LinkedBlockingQueue вместе с шаблоном производителя/потребителя для буферизации задач. Чтобы добавить задачи в очередь, я использую метод для моих производителей: Queue.put (Object); Чтобы принять форму задачи, моя очередь, которую я использую для своих потребителей: Queue.take (Object);Как отдать предпочтение потребителям при использовании LinkedBlockingQueue?
Я нашел в Java api, что оба этих метода будут блокироваться до тех пор, пока очередь не станет доступной. Моя проблема: я знаю, что в моей системе больше производителей задач, чем потребителей. И все мои задачи должны быть обработаны. Поэтому мне нужно, чтобы мои потребители, когда они были заблокированы, имели приоритет над производителями, чтобы получить очередь.
Это их способ сделать это без значительного изменения методов LinkedBlockingQueue?
Насколько я знаю, эта очередь по дизайну не будет блокировать потребителей, даже если производители заблокированы из-за того, что очередь заполнена. – hexafraction