0

我正在使用 Chronicle Bytes 版本 1.7.22。我想将字节用于堆外缓存和大型媒体(例如图像、视频)的持久性。目前我正在创建字节如下:

Bytes.elasticByteBuffer();

或(用于持久性)

MappedBytes.mappedBytes(file, 64);

我使用 Bytes.outputStream() 编写媒体内容并使用 Bytes.inputStream() 读取媒体内容。但是,我只能读取一次 InputStream。它似乎不支持重置。如何在不分配额外内存的情况下多次同时读取媒体内容?

4

1 回答 1

0

我建议您升级到最新的 1.9.x 版本,但不会解决您的问题,因为它会修复许多错误。

字节旨在是单线程的,但是可以共享底层字节。您需要创建一个具有共享数据的 BytesStore 并使用 Bytes 例如 NativeBytes 进行包装,这样您就可以拥有指向该数据的线程本地指针。

如果您需要共享数据的长度,则必须使用线程安全操作将其存储在底层字节中。

于 2017-11-18T07:54:48.343 回答