受控并行任务执行使用什么

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了受控并行任务执行使用什么相关的知识,希望对你有一定的参考价值。

我正在对某些对象运行并行任务,以使它们更快地并行运行4。现在有一个新的要求,我需要执行一项任务,一次一个地执行,而其他人必须等待(其他人不能执行另一个任务)。

我无法进行测试同步。

请查看下面的图片作为更好的解释。

This is the execution I need to implement

一次执行一个,但我想使用信号量在开始和结束时等待4个对象。问题是信号量不等待所有人完成以便让另一个人进入。

它必须只在所有4个完成后才开始执行。我该怎么用?

答案

使用Barrier对象,参与次数为4.这是一个例子:

var barrier = new Barrier(4);

然后在你的任务方法中:

//do some work

//now, wait
barrier.SignalAndWait();

所有方法都将等到所有参与者都调用SignalAndWait()然后它们将继续。

以上是关于受控并行任务执行使用什么的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中并行化以下代码片段?

在 C# .NET 5 中同时并行执行任务

Jenkins 在声明式 pipeline 中并行执行任务

如何设置动态并行任务执行而不是手动调用分派?

多线程 Thread 线程同步 synchronized

带有芹菜的Django:计划任务(ETA)并行执行多次