我是 Java 编程新手。我有几个关于如何实现 RingFiFoBuffer 的问题:
- 我可以将大的 XML 文件存储到这个缓冲区中吗?如果是的话有多大?
- 多个线程可以同时从 RingBuffer 插入/删除/获取记录吗?
- 我可以存储多少条记录?
- 是否有任何教程可以让我看到如何编写代码。
我是 Java 编程新手。我有几个关于如何实现 RingFiFoBuffer 的问题:
问题 1 和 3:这仅受您分配给执行程序的 Java 进程的内存限制。
问题 2:访问像引用的 CircularFifoBuffer 这样的集合通常需要“同步”它们。链接的 JavaDoc 已经包含用于同步它的代码:
Buffer fifo = BufferUtils.synchronizedBuffer(new CircularFifoBuffer());
我可以将大的 XML 文件存储到这个缓冲区中吗?如果是的话有多大?
您仅受内存映射文件的磁盘空间限制。
多个线程可以同时从 RingBuffer 插入/删除/获取记录吗?
这取决于您的实施。通常环形缓冲区在线程之间共享。
我可以存储多少条记录?
这是您在创建环形缓冲区时通常会限制的内容,因此由您决定。将这些保持在最低限度通常是明智的,因为较大的环形缓冲区通常比更紧凑的环形缓冲区要慢。因此,实际限制可能取决于您的应用程序和使用的硬件。
是否有任何教程可以让我看到如何编写代码。
我知道的最好的例子是 Disruptor 库。它相当先进,但比我能想到的任何文档都要好。(包括我写的库;)