对我来说,尽管有大量的多线程构造,但该标准却缺少线程池类,这似乎很奇怪。什么原因可能会阻止委员会将其添加到标准中?
最佳答案
C++ 与 C 一样,旨在为程序员提供尽可能多的控制权。 C++ 中的几乎所有内容都是一个非常简单的包装器。这使程序员可以自由地实现他们想要的任何功能。
“什么是工作”的概念有点抽象,并且取决于用例,因此 C++ 为您提供了工作线程(线程),并让您定义一个策略,以决定如何在工作线程之间分配工作.
例如,在 Python 中,您可以将工作映射到线程。使用这意味着只要有工作可用,线程就会接管该工作。但是,如果您希望线程仅在满足某些条件后AND有工作要做时才做工作,该怎么办?您可以设计您的 thread_pool 类来满足所有这些规范。在 Python 中,您必须在线程池库之外单独处理这些检查。
虽然没有官方答案,但我认为这个答案更有意义。 C++ 是关于使用最少量工具的控制(但与 C 相比是扩展集)。委员会很可能不会添加 thread_pool 类,因为计算机科学中最难做的事情就是让人们达成一致。线程池实现起来并不一定非常困难,而且定义 worker 的定义可以说更难。
关于c++ - 为什么 C++ 标准库中没有 std::thread_pool ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58774356/