在并行C ++中运行函数

时间:2018-11-14 04:57:48

标签: c++

我有一个class A,它有4种方法。我正在创建两个实例a,b。我需要在c ++中同时运行a.function 1 to 4b.function 1 to 4吗?

1 个答案:

答案 0 :(得分:5)

在我看来,您要的是多线程。对于C ++,您可能依赖于本机线程支持或诸如boost的库,该库是跨平台的并且在行业中广泛使用。像Java和C#这样的高级语言具有内置的多线程功能,这样做更容易。

您可以在将来的库(#include <future>)中实现它。

如果您的功能是

int my_func(int param1, int param2, int param3); 
int my_second_func(int param1, int param2, int param3); 

然后,您可以使用future来运行功能asynchronously,如下所示:

std::future<int> f = std::async(std::launch::async, my_second_func, arg1, arg2, arg3);
int result1 = my_func(arg1, arg2, arg3);
int result2 = f.get(); 

在异步(并行)的单独线程中评估函数的地方。