首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有可能在不使用固定长度数组的情况下使用Disruptor/Ringbuffer模式?

有没有可能在不使用固定长度数组的情况下使用Disruptor/Ringbuffer模式?
EN

Stack Overflow用户
提问于 2012-09-25 19:50:39
回答 2查看 809关注 0票数 3

我们有一个具有固定长度数组的Disruptor实现。是否有可能实现一个不依赖于此数组的模式版本,而是包含(可能是自描述的)可变长度对象列表。例如,Protobuf对象的Ringbuffer?

我知道固定长度的数组用于“预分配”步骤,但我认为可以使用一个或多个对象池来近似这一步骤。

EN

回答 2

Stack Overflow用户

发布于 2013-02-05 14:03:48

在破坏程序的java版本中,环形缓冲区是对对象的任何引用数组。您可以通过创建的EventFactory实例在其中放置任何您想要的对象。

票数 1
EN

Stack Overflow用户

发布于 2013-02-13 01:54:11

实现一个不受对象数组支持的破坏程序版本是绝对可能的,但它的性能不会很高。在LMAX Exchange Disruptor的设计和实现中投入了大量的思想和机械上的同情。

从本质上讲,环形缓冲区是一个预先分配的对象池。根据我的经验,我从来没有担心过在任何实际代码中直接管理环形缓冲区的资源。必要时,干扰器会自动施加反压。

该库提供了一个很好的DSL来为您的应用程序构建依赖图,并且基本上免费为您提供了并行性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12582379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档