c++ - 我如何显式线程化任务?

标签 c++ multithreading openmp

假设我有两个函数:

Fun1();
Fun2();

这些函数是独立的,如果我可以并行运行它们(也就是说,在一个线程上运行 Fun1 而在另一个线程上运行 Fun2 ,任务将会得到改进。我是使用 Visual Studio 2012 - 所以打开 MP 2.0

是否有直接方法(没有任何并行区域线程数测试或for 循环狡猾)来实现这一点? OpenMP 是否提供这种功能?

我尝试着手查看 paralleltask 指令,但我彻底找到了大部分文献 incomprehensible找不到任何例子......

最佳答案

C++11:

std::thread thread1(Fun1);
Fun2(); // runs on main thread
thread1.join(); // wait for completion

如果您没有 C++11,您可以将 std::thread 替换为 boost::thread 并执行相同的操作。

关于c++ - 我如何显式线程化任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19224586/

相关文章:

c++ - 无法访问类 'Soldier' 中声明的私有(private)成员

c++ - PDB对应一个二进制

python - Python 中的键盘可中断阻塞队列

c++ - 并行 block 中的非并行for循环

c++ - OpenMP 中字符串类型的缩减

c++ - 如何在派生类中存储在基类初始化期间获得的信息?

c++ - 从尝试引用已删除函数的 vector C++ 中删除对象

javascript - 如何使用 Angular Fullstack 部署 Throng 或 Cluster?

python - 在 Python 中,在多线程程序中调用 os.waitpid 有什么缺点?

c++ - For 循环中的 OpenMP 并行部分 (C++) - 开销