我想创建一个通用任务调度程序,它支持具有依赖关系的嵌套并行,即能够从其他(父)任务内创建和排队(子)任务,同时父任务执行依赖关于子任务结果。不幸的是,我无法弄清楚如何实现这一点。我坚持以下简单的案例: 让我们假设我们有2个工作线程,我们创建/排队2个父任务。每个任务将在单独的线程上开始执行。现在每个任务产生2个子任务,并在返回之前等待它们完成。但是因为没有其他可用线程(因为两个工作线程被阻塞等待子任务完成),所以永远不会执行子任务。因此,父任务永远不会返回。
是否有用于上述问题的标准方式/模式?我还尝试在任务调度程序上阅读英特尔的TBB文档,但目前还不清楚TBB如何实现这一点。