max*_*ann 1 java multithreading buffer nio netty
嘿嘿,
ByteBuffers以及 netty 的ByteBuff使用索引来存储它们当前“所在”的位置。在我的应用程序开始时,我在ByteBuffers/ByteBuffs 中加载多个文件,以便稍后从中读取。此外,字节缓冲区在加载后是不可变的。我现在的问题是多个客户端应该能够从这些字节缓冲区读取,但是因为它们使用相同的读取器/写入器索引,所以它不起作用。是否有一种简单的方法可以维护每个线程的索引?netty 是否有一些“工具”来实现这一目标?
我已经读过 nio ByteBuffers 不支持多线程,但是如果您只从它们中读取数据也是如此吗?
基本上我只是在寻找一种发送数据的方法,它存储在内存中,通过 netty 非常快。
您可以为每个新线程调用 ByteBuf 上的重复项并使用返回的 ByteBuf。这些将共享相同的内容但不相同的索引。
ByteBuf duplicate = ByteBuf.duplicate();
Run Code Online (Sandbox Code Playgroud)