有什么方法可以在 tbb::flow::graph 中的节点之间发送"heavy"类型?
Is there any method to send "heavy" types between nodes in tbb::flow::graph?
我需要在tbb::flow::graph(英特尔tbb库)中的节点之间发送一些"重"类型,即其中包含动态数组的结构。如果我试图在一个节点中创建这样一个结构的实例,并将其上的指针发送到另一个节点,我会得到访问冲突(这是意料之中的,因为我试图使用来自另一个线程的数据)。
所以传递这些参数的唯一方法是使用适当的复制构造函数按值传递,不是吗?但是我们会浪费很多时间去复制。。。
更新:πάγταῥεῖ建议使用std::unique_ptr通过节点传递此类类型。但恐怕我不明白该如何实施。例如,如何将std::unique_ptr与source_node一起使用?
使用std::unique_ptr<>更新2:在flow_graph.h行287中给出C2280"试图引用已删除的函数"。
所以这个问题仍然悬而未决。
最大
不幸的是,std::unique_ptr
没有属性CopyConstructible
,这是flow::graph
传递对象消息的要求。
您可以尝试std::shared_ptr
,它确实具有属性。我们修复了缓冲区中对象保留的问题(这导致大型对象被保留,直到图形被重置())。如果你发现它有任何问题,请告诉我们。
谨致问候,Chris
相关文章:
- 节点 *temp; 和节点 *tmp = 新节点之间的差异
- 如何使用发送数据包所花费的时间计算两个节点之间的距离?
- 使用 Dijkstra 算法跟踪两个节点之间的最短路径
- 如何仅在 2 个节点之间获取最短路径,给定邻接列表有向图?
- 在由邻接列表表示的树中查找节点到另一个给定节点之间的路径
- 查找树中两个节点之间的最大成本边
- 树节点之间的最大距离中的运行时错误
- 在 NUMA 节点之间散布 OpenMP 线程
- 添加一个节点,并在通用树中的两个给定节点之间找到路径成本,其中c 中的儿童列表
- 光标和节点的AST遍历之间有什么区别
- 查找树(不属于任何特定类型的简单连接树)中两个节点之间的路径
- Cassandra中C 驱动程序的协调器节点和接触点之间的差异
- 使用 Dijkstra 算法计算两个节点之间的最短路径
- 计算汽车节点静脉之间的距离
- 链接列表C 类,这两个添加节点实现之间的差异是什么?
- 有没有办法在两个ROS节点之间具有优先级
- 如何使用BFS查找两个节点之间的距离
- 使用 BFS 查找 2 个节点之间的最短路径
- 如何在不同的cpp中生成的节点之间进行交互.
- 树中两个节点之间的最小距离