簡體   English   中英

C++線程池中的等待循環替代方案

[英]Waiting loop alternative in c++ thread pool

我在我的程序中實現了一個簡單的線程池,其中主線程設置數據並通知線程執行,然后在循環中等待它們完成。

while(true){

// set the data
....
// notify threads
...
while(n_done < num_threads){}        // wait in the while loop for threads to finish

}

每個線程大約需要 10-15 毫秒才能完成,直到主線程繼續循環線程以完成消耗大量 CPU 使用率。 是否有任何替代方法可以停止或休眠主線程執行,直到線程完成而沒有循環。

如果您想等待所有線程完成而不重用它們,您可以在最后對每個線程使用join()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM