[英]Threads in OpenMP C++
我需要在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
//...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.