如何使用LMAX干扰器在数组中查找max元素

时间:2017-05-04 14:47:22

标签: java multithreading sorting parallel-processing disruptor-pattern

请您提供一个代码示例链接,该代码示例使用LMAX Disruptor模式实现并行排序或并行最大查找。

1 个答案:

答案 0 :(得分:1)

它并不适用。破坏者基本上表现得像一个管道,处理程序单独访问每个项目,但它的实现方式非常不同,以避免锁定和改进引用的局部性。

要找到最大值,此处理程序必须"泄漏"信息位于中心位置,因此与试图产生自己价值的其他线程发生冲突。为了排序,我甚至不知道从哪里开始...你希望每个处理程序在其他地方进行单独的数组插入排序并稍后合并?这太不合适了。

此外,某些线程必须将数据放入环中,这几乎就是您首先可以完成的线性搜索。如果环可以直接在现有阵列上构建(以跳过发布),那么破坏者的意义何在?在给定数组的子范围的情况下,使用一堆线程会更好。