繁体   English   中英

OpenMP C ++中的线程

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM