簡體   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