为什么C ++在标准库中没有std :: thread_pool?

对我来说,奇怪的是,尽管标准中有大量的多线程构造,但该标准却缺少线程池类。有什么原因会阻止委员会将其添加到标准中?

a1119850405 回答:为什么C ++在标准库中没有std :: thread_pool?

与C一样,C ++旨在给程序员尽可能多的控制权。 C ++中的几乎所有东西都是非常简陋的包装器。这使程序员可以自由地实现他们想要的任何功能。

“什么是工作”的概念有点抽象,并且取决于用例,因此C ++为您提供了工作程序(线程),并允许您定义一种策略,以便您希望如何在工作程序之间分配工作

例如,在Python中,您可以将工作映射到线程。使用此方法意味着只要有工作可用,线程就会接管工作。但是,如果您希望线程仅在满足某些条件后可以进行 AND 的工作,该怎么办?您可以设计您的thread_pool类以满足所有这些规范。在Python中,您必须在线程池库之外单独处理这些检查。

虽然没有正式答案,但我认为这是更合理的答案。给定最少的工具(但是与C相比,EXTENDED集),C ++就是关于控制的。该委员会很可能不会添加thread_pool类,因为在计算机科学领域最难的事情是使人们达成共识。线程池不一定非常难以实现,并且可以肯定地定义worker的定义。

本文链接:https://www.f2er.com/3134854.html

大家都在问