我们可以使用单线程来消耗多个干扰因素吗?

时间:2018-03-27 07:39:43

标签: disruptor-pattern

我有来自不同来源(多播,tcp)的不同数据。 我打算使用不同的Disruptor来单独管理每种类型的数据,而我想通过单个线程使用所有这些数据。

这种型号的Disruptor是专为?而设计的? 如果是这样,Disruptor构造函数会附带Executor / ThreadFactory,这意味着内部数据应由线程池管理。我们怎样才能将同一个线程共享给多个破坏者?

1 个答案:

答案 0 :(得分:0)

如果没有你的努力,破坏者库可能不会这样做;我不确定整个API是什么样的。在环形缓冲区上有一个api来获取(序列)并获得光标,至少。

但是如果您理解了模式,很明显消费者线程在任何API中都没有被阻止,因此自定义实现可以轻松地轮询各种环形缓冲区,尤其是不是旋转繁忙等待循环。

但是,您可能会通过从一个任务+内存跳转到另一个任务来释放一些cpu缓存区域。