在C 多线程应用程序中,设置了并发线程的最大数量

In a c++ multithread application set the max number of concurrent thread

本文关键字:线程 并发 最大数 设置 多线程 应用程序      更新时间:2023-10-16

i在Windows环境中工作(Visual Studio 2019(。我想创建一个必须执行多次的C 应用程序:假设10000次。我想使用多个线程和Coursem实现此目标,我想限制并发线程的数量,例如20。换句话说,我想做的是在C#应用程序中可以轻松地使用并行指令进行操作:

public class Program
{
    private static void Main(string[] args)
    {      
       ParallelOptions opt = new ParallelOptions();
       opt.MaxDegreeOfParallelism = 20;
        Parallel.For(0, 10000, opt, i =>
        {
            // Do the task
        });
    }
}

C 版本可能看起来像这样:

std::vector<workpackage> workpackages;
std::for_each(std::execution::par, workpackages.begin(), workpackages.end(), [](auto& wp) {
    // work with workpackage "wp" here
});

...但是您无法决定使用多少个线程。如果您想要更多的控件,则可以使用std::thread进行人工创建线程,只计算您运行的数量。