【问题标题】:How to find max element in array using LMAX disruptor如何使用 LMAX 破坏器查找数组中的最大元素
【发布时间】:2017-05-04 14:47:21
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    它并不真正适用。中断器本质上表现得像一个管道,处理程序隔离地访问每个项目,但它的实现方式非常不同,以避免锁定和提高引用的局部性。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-20
      • 2013-12-15
      • 1970-01-01
      • 2012-05-20
      • 2016-11-17
      相关资源
      最近更新 更多