【发布时间】:2022-01-19 20:36:48
【问题描述】:
我是 C++ 新手,并试图了解多线程。我已经涵盖了基础知识。现在想象一下这种情况:
比如说,我有 N 个任务想要尽快完成。这很容易,只需启动 N 个线程并向后倾斜。但我不确定这是否适用于 N=200 或更多。
所以我想说:我有 N 个任务,我想启动有限数量的 M 个工作线程。 一旦之前的线程之一完成,我如何安排将任务发布到新线程?
或者所有这些都由操作系统或运行时处理,我完全不用担心,即使 N 变得真的很大?
【问题讨论】:
-
了解thread pools。不幸的是,与其他一些编程语言不同,C++ 中没有 标准 线程池类,但如果您搜索一下,您可以找到由 3rd-party 库提供的线程池。 OTOH,如果您不需要任何棘手的东西,您可能可以在一天左右的时间内实现和测试自己的线程池。
-
相关问题和里面的一些链接:stackoverflow.com/q/15752659/580083.
标签: c++ multithreading