我们有一个具有固定长度数组的Disruptor实现。是否有可能实现一个不依赖于此数组的模式版本,而是包含(可能是自描述的)可变长度对象列表。例如,Protobuf对象的Ringbuffer?
我知道固定长度的数组用于“预分配”步骤,但我认为可以使用一个或多个对象池来近似这一步骤。
发布于 2013-02-05 14:03:48
在破坏程序的java版本中,环形缓冲区是对对象的任何引用数组。您可以通过创建的EventFactory实例在其中放置任何您想要的对象。
发布于 2013-02-13 01:54:11
实现一个不受对象数组支持的破坏程序版本是绝对可能的,但它的性能不会很高。在LMAX Exchange Disruptor的设计和实现中投入了大量的思想和机械上的同情。
从本质上讲,环形缓冲区是一个预先分配的对象池。根据我的经验,我从来没有担心过在任何实际代码中直接管理环形缓冲区的资源。必要时,干扰器会自动施加反压。
该库提供了一个很好的DSL来为您的应用程序构建依赖图,并且基本上免费为您提供了并行性。
https://stackoverflow.com/questions/12582379
复制相似问题