多次读取编年史字节,并作为流并发



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

Bytes.elasticByteBuffer();

或(用于持久性(

MappedBytes.mappedBytes(file, 64);

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

我建议您升级到最新的1.9.x版本,尽管因此无法解决您的问题,因此它将修复许多错误。

字节

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

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

最新更新