C++ threadpool怎么了?

C++ threadpool怎么了?,c++,multithreading,boost,c++11,C++,Multithreading,Boost,C++11,你们有谁知道发生了什么事吗 虽然没有包括测试,但它似乎质量很好。为什么没有将其添加到Boost中?有人知道C++11端口吗?有一个线程组类型,提供典型的线程池操作。在C++11中,使用std::futures可能会自动执行一些池化操作。它是否曾被正式考虑包含在Boost中?@Bart:我不知道。它或多或少是为了适应Boost而写的,但可能从未被正式考虑过。是的,我不这么认为。例如,它不出现在他们的团队中。但我没有比这更权威的信息了。:)@曼努埃尔:我认为作者实际上从来没有“完成”过这本书,因此他

你们有谁知道发生了什么事吗


虽然没有包括测试,但它似乎质量很好。为什么没有将其添加到Boost中?有人知道C++11端口吗?

有一个
线程组
类型,提供典型的线程池操作。在C++11中,使用
std::future
s可能会自动执行一些池化操作。

它是否曾被正式考虑包含在Boost中?@Bart:我不知道。它或多或少是为了适应Boost而写的,但可能从未被正式考虑过。是的,我不这么认为。例如,它不出现在他们的团队中。但我没有比这更权威的信息了。:)@曼努埃尔:我认为作者实际上从来没有“完成”过这本书,因此他甚至没有提出这本书。我基于自己的
boost.Threadpool
,它是c++11,但当然只能根据我的即时需要进行验证。@KillianDS如果您将此作为答案发布,我会将其标记为已接受。我认为Steve M的另一个答案是不正确的。
thread\u group
是否提供池级别的调度操作?此外,我认为您仍然需要提供自己的逻辑来“重用”线程以执行多个函数。远不是一个全功能的线程池imho。另外,我认为池对于
std::async
(我假设你的意思是,特别是
std::future
本身不启动)。总是静态地启动N个线程将是对stdlib的极大浪费。但它也不能限制这样一个线程池中的线程数量(AIK允许阻止递归异步调用)。因此,您将得到一个动态线程池,其中包含0个初始线程和未指定的最大线程数,这几乎等于根本没有线程池:P@KillianDS:我不确定您所说的“静态启动N个线程”是什么意思。MSVC stdlib async/futures将根据系统的内核数而不是每个任务的一个线程来汇集线程(参考资料:)。据我所知,他的幻灯片是正确的(我没有55米的空闲),microsoft的实现可能会完全失败。如果不为每个
async
调用创建一个线程,则可能会出现死锁。请参阅上的示例,如果只启动特定数量的线程,这可能永远不会完成。因此,您必须能够增加线程池。此外,为
async调用不会破坏任何东西,它可能只是浪费线程。@SteveM:我是缺少什么,还是线程组中的KillianDS没有提供“启动并忘记”任务?