C 多线程:管理线程

C++ multithreading: managing threads

本文关键字:线程 管理 多线程      更新时间:2023-10-16

我有一个n个作业池,我想持续的m(= cpus数量)线程。我该如何在C 中执行此操作?

我已经知道C 线程库的基础知识。最简单的方法是加入工作并等待所有人完成。然后加入另一个工作。只要剩下工作,就这样做。

只要每个作业/线程大约需要相同的时间,这种简单的方法就可以正常工作。如果事实并非如此,那么一个长线程仍在工作,而其他所有内容都可以很容易地发生。因此,只加载了M CPU中的一个。

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

在C 中是否已经实现了类似的东西?否则,最简单/最聪明的方法是什么?

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

在C 中已经实现了类似的东西?

Intel线程构建块库中有一个任务调度程序,该库确实以高效的方式将用户任务平衡到可用的CPU上。