多次读取Chronicle Bytes并同时作为流

时间:2017-11-17 13:02:12

标签: java chronicle chronicle-bytes

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

Bytes.elasticByteBuffer();

OR(用于持久性)

MappedBytes.mappedBytes(file, 64);

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

1 个答案:

答案 0 :(得分:0)

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

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

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