二叉树: 例如,如果我们需要并行处理Tree数据结构。我们可以生成一个线程来处理左边节点,另一个线程来处理右边节点。现在两者都可以在相同的数据结构上独立运行。
链接列表当然不可能具有相同的并行性。
我在想,如果还有其他数据结构,那么我们可以灵活地实现类似于二叉树的并行性?
答案 0 :(得分:2)
什么类型的并行性?你总是可以并行读取,但是对于写入来说它更复杂。如果唯一要改变的是存储在节点中的数据,则没有理由不通过为每个单独节点而不是整个节点创建锁来并行化LinkedList
或Array
。名单。但如果结构的连接受到影响,那么还有许多事情需要担心。
答案取决于你要做什么以及如何设置锁,条件等,但没有任何内在可并行化或可并行化。
答案 1 :(得分:0)
当你谈到并行处理时,我会想到两件事:1)任务并行2)数据并行。我将在这里讨论第二个。
检查树的超集:图表。基于智慧群体/集体智慧的许多巨大数据问题可以建模为图形。使用Map Reduce框架并行处理Graph对您来说很有意思。