本文介紹了在循環 C++ 中重用線程的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我需要在 C++ 程序中并行化一些任務,并且我對并行編程完全陌生.到目前為止,我已經通過互聯網搜索取得了一些進展,但現在有點卡住了.我想在循環中重用一些線程,但顯然不知道如何做我想要的.
我正在從電腦上的兩張ADC卡上采集數據(并行采集),然后我需要在采集下一批數據的同時對采集到的數據進行一些操作(并行處理).下面是一些偽代碼來說明
//獲取一些數據,等待所有數據獲取完畢再繼續std::thread acq1(AcquireData, boardHandle1, memoryAddress1a);std::thread acq2(AcquireData, boardHandle2, memoryAddress2a);acq1.join();acq2.join();while(用戶不打擾){//獲取新數據的同時處理第一批數據std::thread proc1(ProcessData,memoryAddress1a);std::thread proc2(ProcessData,memoryAddress2a);acq1(AcquireData, boardHandle1, memoryAddress1b);acq2(AcquireData, boardHandle2, memoryAddress2b);acq1.join();acq2.join();proc1.join();proc2.join();/*以這種方式進行,交替使用哪個內存地址被寫入并被處理,直到用戶中斷程序.*
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!