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