c++ - 什么样的DataStructures可以实现并行处理

标签 c++ c multithreading algorithm parallel-processing

二叉树: 例如,如果我们需要并行处理树数据结构。我们可以产生一个线程来处理左节点,另一个线程来处理右节点。现在两者都可以在相同的数据结构上独立运行。

链表当然不可能有同种并行。

我在想,如果有任何其他数据结构,那可以让我们灵活地实现类似于二叉树的并行性?

最佳答案

什么类型的并行性?你总是可以并行读取,但对于写入来说,它更复杂。如果唯一改变的是存储在节点中的数据,那么没有理由不能通过为每个节点创建一个锁来并行化 LinkedListArray单个节点而不是整个列表。但是,如果结构的连接受到影响,那么需要担心的事情就更多了。

答案取决于您尝试做什么以及您如何设置锁、条件等,但没有什么是天生可并行化或可并行化的。

关于c++ - 什么样的DataStructures可以实现并行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9621846/

相关文章:

C++ 地址存在吗?

c++ - 从 XML 中读取德语文本并写入 PDF

c++ - gcc 5.1 中的链接时间优化是否足以放弃内联简单函数?

C++ std::thread 应该在堆上或堆栈上创建

c++ - 模板参数中的 Const 关键字

c++ - 结构或 union 中的 'unsigned temp:3' 是什么意思?

c - 如何创建具有 Sentinel 值的链表

c - 结构问题,将它们放在哪里以及如何在标题中引用它们?

c++ - 使用 -march 编译会导致线程显示 "pure virtual method called"

ios - performSelectorInBackground调用方法会减慢主线程的速度-可以解决此问题吗?