使用c ++异步进行并行编程

时间:2016-12-30 15:54:39

标签: c++ multithreading parallel-processing

有没有办法设置可以通过使用异步函数(从未来)创建的最大线程数量? 我更喜欢使用async / future.get,因为它可以转换为同步/生成多任务模型,这很常见 在Alghoritms(即Cormen)的教科书中。我希望能够获得T [p](使用p处理器/线程完成程序的时间)。

1 个答案:

答案 0 :(得分:2)

不幸的是没有。 std::async在控制方面非常有限,它为您提供了如何创建线程。

您可以考虑使用boost线程池。这(有点直觉)是boost asio的一部分,并且使用io_service对象,即使/如果您实际上没有将它用于I / O.

有了这个,它可以很容易地控制使用的线程数,包括只使用一个。

当然,您可以从标准组件构建自己的线程池类。当然可能,但不是一个完全无关紧要的任务。