gpt4 book ai didi

c++ - 有没有办法在 C/C++ 中并行运行完全不相关的任务

转载 作者:行者123 更新时间:2023-11-30 21:49:09 27 4
gpt4 key购买 nike

换句话说,由于我主要习惯 C# - 在那里你可以使用 Parallel.Invoke 进行结构化并行并几乎同时运行 2 个或更多完全不相关的类,例如:

public void hello_world()
{
//hello world code
}

public void mysql_connect()
{
//connect to mysql here
}

/// Now run them both at the same time

Parallel.Invoke(hello_world, mysal_connect);

非常简单并且完全并行。我在 C/C++ 中读到,您可以使用 OMP,但这似乎是关于在具有相同逻辑但不同变量的并行子级中运行的父级,不是吗?

最佳答案

您可以尝试使用 OpenMP 任务。打开一个并行 block 并在其中创建两个任务 block 。像这样的事情:

#pragma omp parallel
{

#pragma omp task {
// hello world code
}
#pragma omp task {
// connect mysql
}
}

-fopenmp 选项添加到编译行。可能有比这更好的方法,因为它要求您将所有代码放在同一个代码块中。无论如何,这是一个非常简单的解决方案,只需添加最少的代码。

关于c++ - 有没有办法在 C/C++ 中并行运行完全不相关的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48618947/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com