我有来自不同来源(多播,tcp)的不同数据。 我打算使用不同的Disruptor来单独管理每种类型的数据,而我想通过单个线程使用所有这些数据。
这种型号的Disruptor是专为?而设计的? 如果是这样,Disruptor构造函数会附带Executor / ThreadFactory,这意味着内部数据应由线程池管理。我们怎样才能将同一个线程共享给多个破坏者?
答案 0 :(得分:0)
如果没有你的努力,破坏者库可能不会这样做;我不确定整个API是什么样的。在环形缓冲区上有一个api来获取(序列)并获得光标,至少。
但是如果您理解了模式,很明显消费者线程在任何API中都没有被阻止,因此自定义实现可以轻松地轮询各种环形缓冲区,尤其是不是旋转繁忙等待循环。
但是,您可能会通过从一个任务+内存跳转到另一个任务来释放一些cpu缓存区域。