【发布时间】:2016-08-23 04:30:54
【问题描述】:
Visual Studio 2015 的 std::thread 内部实现是否基于 PPL 的任务系统?
我的问题的背景是,将 std::thread 用于多个任务是否有意义,因为它们已经在公共线程池上平衡执行,还是通过 PPL 任务执行任务更好?
根据 (Which std::async implementations use thread pools?) 这似乎是,但由于这个问题相当老,我想得到一个“官方”的答案。
【问题讨论】:
-
它使用与 PPL 相同的基础,即并发运行时。它(几乎)完全替代了操作系统原语,重点是在多核 CPU 上获得更好的扩展性。而且我怀疑它会在某一天被移植的有点闲置的希望。顺便说一句,调试并不是一件好事。 std::thread 是一个相当简单的类,使用 PPL 来添加它。像线程池、parallel_for 等。
标签: c++ multithreading c++11 ppl