我正在尝试TBB。我有一个交互式的应用程序,它不时需要执行很多计算昂贵的操作。有些依赖于其他:f
是f(g(x), x)
,而h
是h(g(x), x)
。交互式地,用户可以按任何顺序触发f
开始计算或h
开始计算。就是说,我认为我无法建立表示f
和h
都依赖于g
的图表。在TBB之外,我会考虑使用std::shared_future
,但据我了解,TBB本质上使用协作式多任务处理,因此,如果我将来阻塞,则会释放线程直到其解除阻塞。
您将如何使用TBB来启动f
和/或h
的计算,而不会重复g
的工作并且没有任何TBB线程阻塞?