Базовый буфер времени Java

#java #java-11

#java #java-11

Вопрос:

Мне нужен буфер, основанный на времени, а не массив байтов.

У меня есть поток данных, потребляемых из сетевого сокета; мне нужно буферизировать этот поток каждые 5 секунд.

                   ----------------- 
Input Stream --->| 5 second buffer |--> Process data 
                  ----------------- 
 

Примечание: этот буфер необходимо очистить после обработки данных.
В Java 11 есть какая-либо реализация этого типа буфера?
я ищу в Google, но не могу найти решение.

Спасибо

Комментарии:

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

2. Вы пытаетесь передавать аудио / видео в потоковом режиме и убедиться, что в любой момент времени для обработки доступен контент продолжительностью не менее 5 секунд? Или вам просто нужен буфер для чтения в течение 5 секунд (емкость буфера будет варьироваться)?

3. нет, этот поток не является аудио / видео, мне просто нужно транслировать каждые 5 секунд.