Zha*_*Chn 6 c++ concurrency asynchronous ios c++11
我有一些使用 GCD 进行并发和删除显式锁和线程的经验。
C++11 提供了 std::async,它似乎提供了一些类似的功能(我不是 C++ 专家,请不要责怪我的错误)。
撇开口味和语言偏好的争论不谈,是否有任何基准比较两者的性能,尤其是对于像 iOS 这样的平台?
从实用的角度来看,c++11 的 std::async 值得一试吗?
编辑:
正如 stackmonster 所回答的那样,C++11 本身并没有提供完全类似于调度队列的东西。但是,是否可以使用原子数据结构(和可论证的 lambda 函数)制作一个临时串行队列来实现这一点?
C++ 11 std::async 并不像中央调度那么复杂。
它更类似于 java.util.concurrent 包提供的异步并发模型,提供回调模板,但没有内置的性能优势。
我想说,他们之间的区别就是这样。
回调模板没有特定的性能特征。GCD 的重点是性能,以及对这些回调进行线程化/多路复用,以减少线程创建开销并允许排队、任务依赖和线程池。
std::async 的启动策略在复杂性上无法与 GCD 相比,并且不可移植实现。
我不太确定两者之间的基准能真正证明什么,因为它们并不是那么相似。
归档时间: |
|
查看次数: |
3389 次 |
最近记录: |