我试图理解破坏者的模式.我看过InfoQ视频,试图阅读他们的论文.我知道有一个环形缓冲区,它被初始化为一个非常大的数组,以利用缓存局部性,消除新内存的分配.
听起来有一个或多个原子整数可以跟踪位置.每个"事件"似乎都得到一个唯一的id,它在环中的位置是通过找到与模数相关的模数等来找到的.
不幸的是,我没有直观的感觉它是如何工作的.我做了很多交易应用程序并研究了演员模型,看过SEDA等.
在他们的演讲中他们提到这种模式基本上是路由器的工作方式; 但是我还没有找到路由器如何工作的任何好的描述.
是否有一些更好解释的好指示?
concurrency latency actor disruptor-pattern
我知道有些人正在使用C++端口.
C#端口可能吗?特别是我在考虑C#中仅有32位的易失性字段的限制.如果这是唯一的问题,那么有什么想认为将该环形缓冲区编写为只允许32位允许的时隙数是值得的.这在系统的生命周期中发生的事件要少得多.我有这个权利吗?我们可以在某个时候回到0吗?
先感谢您.
c# disruptor-pattern
disruptor-pattern ×2
actor ×1
c# ×1
concurrency ×1
latency ×1