System.Threading.Tasks 在 UNIX 和 C++ 中等效
System.Threading.Tasks equivalent in UNIX and C++
我读过这篇关于多核处理的文章:
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 中做同样的事情?
我的意思是避免被窃听。
不确定 .NET 到底做了什么,但 std::async
/ std::future
允许任务并行排队。
不,没有内置的直接等效项。
std::async 用于每个异步任务,即当您有许多短操作时非常慢。
您可以寻找第三方C++线程池实现。
或者你可以切换到更高级别API。我有积极的经验 OpenMP, it’s included in most C++ compilers, and under the hood it does have a thread pool with a scheduler. I’ve heard Intel’s TBB 也很好。
我读过这篇关于多核处理的文章:
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 中做同样的事情?
我的意思是避免被窃听。
不确定 .NET 到底做了什么,但 std::async
/ std::future
允许任务并行排队。
不,没有内置的直接等效项。
std::async
您可以寻找第三方C++线程池实现。
或者你可以切换到更高级别API。我有积极的经验 OpenMP, it’s included in most C++ compilers, and under the hood it does have a thread pool with a scheduler. I’ve heard Intel’s TBB 也很好。