| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > ArrayBlockingQueue vs LinkedBlockingQueue |
| Автор: Royan 10.2.2010, 14:08 |
| Предположим, у вас такая ситуация. В 99.99% случаев размер очереди примерно равен 100 000 элементов, но в какой то момент (те самые 0.01%) очередь вырастает до 100 000 000 элементов. Какую из двух очередей (ArrayBlockingQueue или LinkedBlockingQueue) следует использовать и почему? |
| Автор: MaxPayneC 10.2.2010, 14:19 |
| Думаю ArrayBlockingQueue - он быстро осуществляет операции доступа, но медленно операции, связанные с перераспределенем памяти. Если они происходят в 0.01% случаев, полагаю это будет оптимальным решением. |
| Автор: COVD 10.2.2010, 16:01 |
| ArrayBlockingQueue имеет фиксированную вместимость - "Once created, the capacity cannot be increased". Поэтому только LinkedBlockingQueue. |
| Автор: Royan 10.2.2010, 18:39 |
| COVD, Правильно! Фигня еще в том, что таким вот образом, разработчику придется хранить 100 000 000 ссылок в объекте ArrayBlockingQueue на случай такого количества элементов, т.е. на лицо не эффективный расход памяти в 99.99% времени работы приложения. |