我有一些使用GCD进行并发和删除显式锁和线程的经验.
C 11提供了std :: async,它似乎提供了一些类似的功能(我不是C专家,请不要因为错误而责怪我).
抛开关于口味和语言偏好的论据,是否有任何基准比较两者的表现,特别是对于像iOS这样的平台?
c 11的std :: async是否值得从实际角度尝试?
编辑:
正如堆栈员回答的那样,C 11本身并没有提供与调度队列完全相同的东西.但是,是否有可能使用原子数据结构(和可论证的lambda函数)创建一个特殊的串行队列来实现这一目标?
解决方法:
C 11 std :: async并不像大中央调度那样复杂.
它更类似于java.util.concurrent包提供的异步并发模型
为回调提供模板,但没有内置的性能优势.
我会说他们之间的区别仅仅是这个.
回调模板没有特定的性能特征. GCD完全是关于性能,并且线程/多路复用这些回调以减少线程创建开销并允许排队和任务依赖性以及线程池.
std :: async的启动策略在复杂性方面与GCD没有比较,并且不是可实现的.
我真的不确定这两者之间的基准是什么,因为它们不是那么相似.
原文地址:https://codeday.me/bug/20190826/1726020.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。