标准功能std::异步 http://en.cppreference.com/w/cpp/thread/async:
模板函数 async 异步运行函数 f (可能在一个单独的线程中,该线程可能是线程池的一部分)并返回一个 std::future ,它最终将保存该函数调用的结果。
有两种启动政策std::launch::async 和 std::launch::deferred http://en.cppreference.com/w/cpp/thread/launch。在我的编译器中(GCC 6.2)标准库实现,第一个总是创建一个新线程,第二个对调用线程进行延迟评估。默认情况下std::launch::deferred
用来。
是否有一些实现使用大小等于可用硬件线程的线程池std::launch::async
指定以避免创建两个线程std::async
用于递归算法?
Visual Studio 附带的 Microsoft 编译器和 C++ 运行时可以实现这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)