如何在运行时以DAG的形式组合多个函数

时间:2012-03-26 20:34:00

标签: c++ multithreading directed-acyclic-graphs

我有几个类,每个类都是一个Operator的子类。 运算符有多种输入和输出,各种类型:图像,数字,字符串。 每个子类实现一个执行计算的run()方法。 现在我想为这些运算符设计一个容器,从简单的运算符中创建更大的运算符。 容器应该尽可能高效,所以我打算使用线程。我在Boost图库中找到了一个示例,它允许我计算我应该进行计算的顺序:http://www.boost.org/doc/libs/1_49_0/libs/graph/doc/file_dependency_example.html,但我认为可能有更好的方法来执行此操作:每个运算符都可以等待阻塞状态,直到所有输入都准备就绪。 如果容器子类化运算符,允许递归地组合它们将是好的。 我觉得这是一种已知的设计模式。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我找到了一个符合我描述的设计模式:the composite pattern

复合模式描述了一组对象的处理方式与对象的单个实例相同。