繁体   English   中英

C ++多线程:管理线程

[英]C++ multithreading: managing threads

我有一个N个工作的池,我想有一个M(= CPU数量)线程的恒定负载。 如何在C ++中做到这一点?

我已经知道C ++线程库的基础知识。 最简单的方法是排队M个工作,然后等待所有工作完成。 然后排队另外M个工作。 只要还有工作,就这样做。

只要每个作业/线程花费大约相同的时间,此简单方法就可以正常工作。 如果不是这种情况,很容易发生一个长线程仍在工作而其他所有线程都已完成的情况。 因此,仅装载了M个CPU之一。

所以我需要一种线程管理。 不必等待所有线程,而是必须不断检查正在运行的线程数,并在必要时加入一个新线程。

在C ++中是否已经实现了类似的功能? 否则,实现这种管理器的最简单/最聪明的方法是什么?

所以我需要一种线程管理。 不必等待所有线程,而是必须不断检查正在运行的线程数,并在必要时加入一个新线程。

在C ++中是否已经实现了类似的功能?

英特尔线程构建模块库中有一个任务计划程序,任务计划程序可以高效地将用户任务负载均衡到可用CPU上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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