我读过这篇关于多核处理的文章:
https://blogs.msdn.microsoft.com/usisvde/2009/10/24/how-to-get-started-with-multi-core-parallel-processing-you-can-use/
在.NET Framework 4中,有一个名为System.Threading.Tasks
的方法可以管理可用的逻辑处理器。在没有.NET Framework的情况下,有没有办法在C ++和UNIX中做同样的事情?
同样的意思是避免线程被无意中听到。
答案 0 :(得分:1)
不,没有内置的直接等价物。
每个异步任务的std :: async launches a new thread,即当你有很多短操作时非常慢。
您可以查找第三方C ++线程池实现。
或者您可以切换到某些更高级别的API。我对OpenMP有积极的经验,它包含在大多数C ++编译器中,并且它有一个带调度程序的线程池。我听说Intel’s TBB也很好。
答案 1 :(得分:0)
不确定.NET的功能,但std::async
/ std::future
允许并行排队任务。