0
我需要实现在C++的OpenMP的C#线程效果..线程在OpenMP的C++
Thread t=new Thread(func1);
t.Start(); // Do something
// Do something else
注意,无论是父母或孩子等待被连接..
我能做到这一点的C++ OpenMP?
感谢,
我需要实现在C++的OpenMP的C#线程效果..线程在OpenMP的C++
Thread t=new Thread(func1);
t.Start(); // Do something
// Do something else
注意,无论是父母或孩子等待被连接..
我能做到这一点的C++ OpenMP?
感谢,
OpenMP是一个更高层次的线程库比C#线程,经常被用于几乎自动地添加一些线程以串行应用。您可以通过使用#pragma omp parallel
指令来实现类似于您所需的操作,该指令将自动在多个线程中的指令块内运行代码。然后你可以在这个并行部分调用函数。
OpenMP的强大之处在于,使用一些指令将线程添加到现有代码很简单。但是,如果我想要做任何复杂的事情(或者简单的事情),我发现使用低级线程库会更容易。
如果您想要与C#线程有类似接口的东西,请查看Boost.Thread库。有了这个,你可以用几乎相同的语法完成你想要的任务:
#include <boost/thread.hpp>
//creates the thread object and starts the thread, returns immediately
boost::thread th(func1);
//...
//do something else
//...
据我所知,openMP的要点是编译器生成代码来为你产生多个线程。 – Dima 2011-01-07 19:31:06
如果我需要启动一个线程并且不等待它完成,该怎么办? – Betamoo 2011-01-07 19:41:18