5

渡劫 C++ 协程(0):前言

 2 years ago
source link: https://www.bennyhuo.com/2022/03/06/cpp-coroutines-README/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

渡劫 C++ 协程(0):前言

发表于 2022-03-06 更新于 2022-03-11 阅读次数: 7 本文字数: 681 阅读时长 ≈ 1 分钟

C++ 20 标准发布之后,协程终于正式成为 C++ 特性当中的一员。

作为一门本身极其复杂的语言,C++ 秉承着不劝退不开心的原则,将协程的 API 设计得非常复杂。以至于有开发者甚至发出了“这玩意根本就不是给人用的”这样的感叹。

等等,我们是不是搞错了,C++ 协程的 API 确实不是设计给业务开发者直接使用的。实际上,标准当中给出的 API 足够的灵活,也足够的基础,框架的开发者可以基于这些 API 将过去异步的函数改造成协程风格的版本。

没错,这就是 C++。

一门不造轮子就让人不舒服的语言,它总是在用它自己的方式逼着开发者进步。为了帮助大家认识和了解 C++ 协程的设计思路以及基本用法,我计划写几篇文章来介绍一下 C++ 协程的相关特性。

相信大家读完这一系列文章之后,也还是不一定会 C++ 协程 :)

说明:C++ 23 有望基于协程提供不少有用的支持,例如与异步任务密不可分的 executor、network 等等,不过这些内容我暂时不会在后面的文章当中涉及,等 C++ 23 正式发布之后再做补充。


霍丙乾 bennyhuo,Kotlin 布道师,Google 认证 Kotlin 开发专家(Kotlin GDE);《深入理解 Kotlin 协程》 作者(机械工业出版社,2020.6);前腾讯高级工程师,现就职于猿辅导


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK