Читайте Хронику Байт несколько раз и одновременно как поток

Я использую Chronicle Bytes версии 1.7.22. Я хотел бы использовать байты для кэширования вне кучи и сохранения больших носителей (например, изображений, видео). В настоящее время я создаю байты следующим образом:

Bytes.elasticByteBuffer();

ИЛИ (для настойчивости)

MappedBytes.mappedBytes(file, 64);

Я использовал Bytes.outputStream() для записи медиа-контента и использовал Bytes.inputStream() для чтения медиа-контента. Тем не менее, я могу прочитать InputStream только один раз. Кажется, он не поддерживает сброс. Как я могу читать мультимедийный контент несколько раз и одновременно без выделения дополнительной памяти?

1 ответ

Я бы посоветовал вам перейти на последнюю версию 1.9.x, хотя, таким образом, вы не исправите проблему, так как она исправит многие ошибки.

Байты должны быть однопоточными, но с осторожностью можно использовать общие байты. Вам необходимо создать BytesStore, в котором есть общие данные и, таким образом, обернуть байтами, например, NativeBytes, чтобы вы могли иметь локальный указатель потока на эти данные.

Если вам нужно указать, как долго эти данные, вы должны сохранить их в нижележащих байтах, используя потокобезопасную операцию.

Другие вопросы по тегам