二叉树: 例如,如果我们需要并行处理树数据结构。我们可以产生一个线程来处理左节点,另一个线程来处理右节点。现在两者都可以在相同的数据结构上独立运行。
链表当然不可能有同种并行。
我在想,如果有任何其他数据结构,那可以让我们灵活地实现类似于二叉树的并行性?
最佳答案
什么类型的并行性?你总是可以并行读取,但对于写入来说,它更复杂。如果唯一改变的是存储在节点中的数据,那么没有理由不能通过为每个节点创建一个锁来并行化 LinkedList
或 Array
单个节点而不是整个列表。但是,如果结构的连接受到影响,那么需要担心的事情就更多了。
答案取决于您尝试做什么以及您如何设置锁、条件等,但没有什么是天生可并行化或可并行化的。
关于c++ - 什么样的DataStructures可以实现并行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9621846/