Допустим, у нас есть общий Serial и мы слушаем входящие байты. Допустим, что скорость записи больше, чем чтение и чтобы не терять байты из Serial вводим буфер и делаем следующее. Последовательный слушатель просто помещает байты в буфер (поток записи буфера) и считыватель буфера для извлечения байтов из буфера (поток чтения буфера) и анализа данных.
Насколько эффективно использование java 1.5 ConcurrentLinkedQueue<Integer>
с учетом упаковки и распаковки при переключении между примитивным int incomingByte
из последовательного и Queue<Integer>
?
Ограничения:
- нет ограничений на размер буфера
Я знаю, что часто используется буфер фиксированного размера, такой как int[] buffer[BUFFER_SIZE]
, но я бы не хотел иметь ограничения на ограничение буфера.
- потокобезопасный
Лучше иметь потокобезопасность из коробки и не синхронизировать потоки вручную, используя блокирующий буфер или что-то в этом роде.