我已经阅读了TBB 流程图条件执行并且有一个稍微不同的问题。
是否可以创建具有多个输入和多个输出的节点并通过条件变量控制执行?也许没有丑陋的演员表。
我附上了一个简单的例子,我想如何设计图表。使用 TBB 流程图运行它的最佳方法是什么?
start_node
发送start_msg
到some_node
如果
start_msg
为空,则some_node
发送 acontinue_msg
到end_node
,否则some_node
将 a 发送continue_msg
到自身 AND adata_msg
到end_node
如果
continue_msg
由 接收some_node
,则检查先前的 start_msg 是否为空,如果是,则 acontinue_msg
发送到end_node
,否则 adata_msg
发送。+--continue_msg--+ | | +-----+ +-----+ | | | | +----data_msg---+ v | / \ start_node --start_msg--> some_node end_node \ / +--continue_msg--+
我正在处理的一个问题:我不能说有多少好的元素在start_msg
even 是已知的大小(假设start_msg
持有 a tbb::concurrent_vector<T>
。如果some_node
找到一个坏元素,它将被忽略some_node
并将 a 发送continue_msg
给它自己。