LinkedBlockingcequeue правильный выбор для производителя-потребителя, как сценарий?
-
27-09-2019 - |
Вопрос
У меня есть продюсер-потребительский сценарий. Класс A производит объекты типа E. Я должен удерживать его в статической структуре данных в классе a, потому что потребительская логика должна обрабатываться в классе B, что не имеет ссылки на объект A. - это LinkedBlockingQueue Change для правильного типа данных очередь? Или есть лучший выбор для этого?
Решение
Если вы используете ограниченную очередь, вы также можете рассмотреть ArrayBlockingQueue
.
Также, от LinkedBlockingQueue
Javadoc:
Связанные очереди обычно имеют более высокую пропускную способность, чем очереди на основе массива, но менее предсказуемая производительность в большинстве одновременных приложений.
Другие советы
Если производитель и потребитель проходят в двух разных потоках, то да, А. LinkedBlockingQueue<E>
будет хорошим выбором.