我是本主题的新手,我需要为包含以下任务的程序设计并发性:
如何设计程序以并发方式运行?
我发现第2步与第3、4、5、6步无关,因此可以并行运行,如下所示:
1->2 -> 6
3->4->5
但是,由于任务2只有50毫秒,而任务6需要完成所有任务2、3、4、5才能执行。如何指定任务2需要“等待”其他任务?
要同时运行,此问题的合理模式是什么?什么样的可能的问题会出现?
我正在考虑这样的“管道模式”。但不确定是否有更有效的模式
1->2 -> 6
3->4->5
1->2 -> 6
3->4->5
1->2 -> 6
3->4->5
...
最佳答案
您可以将工作负载分解为任务,它们之间具有依赖性。并使用Intel Task Scheduler执行并自动并行化您的工作负载。参见Tutorial : Task Based Programming。
为了获得更多的见识,我不建议您足够观看Plain Threads are the GOTO of todays computing - Hartmut Kaiser - Keynote Meeting C++ 2014。
关于c++ - 图像处理中的并发设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60498222/