简体   繁体   中英

Waiting loop alternative in c++ thread pool

I have implemented a simple thread pool in my program where the main thread sets the data and notify the threads to execute and then wait in a loop for them to finish.

while(true){

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

}

Each thread takes approx 10-15 ms to complete until then the main thread just keeps looping for threads to finish consuming a lot of cpu usage. Is there any alternative method to stop or sleep the main thread execution until the threads complete without a loop.

如果您想等待所有线程完成而不重用它们,您可以在最后对每个线程使用join()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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