首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
渡劫 C++ 协程
霍丙乾bennyhuo
创建于2024-07-21
订阅专栏
这是我写于 2022 年初的 C++ 20 的协程介绍文章。最近发现有不少朋友在讨论这些文章和 C++ 20 协程相关的内容,于是对内容稍微进行了优化并搬运到掘金,希望对大家有帮助。
等 5 人订阅
共11篇文章
创建于2024-07-21
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
渡劫 C++ 协程(10):后记
这一系列文章并不在我的计划之内。为了撰写这一系列文章,我把我撰写《深入实践Kotlin元编程》的计划整体推迟了两个月。现在看来,这个决定非常正确。
渡劫 C++ 协程(9):一个简单的示例
截止目前,我们一直专注于构建基于协程 API 的框架支持,这次我们用这些框架来写个简单的示例,并以此来结束整个系列的内容。
渡劫 C++ 协程(8):通用 Awaiter
每次我们新增功能时,都需要修改 TaskPromise 增加对应的 await_transform 函数,这显然是个设计问题。
渡劫 C++ 协程(7):用于协程之间消息传递的 Channel
之前我们主要关注的是协程与外部调用者的交互,也就是协程的非对称调用。这次我们也关注一下对等的协程之间的通信。
渡劫 C++ 协程(6):基于协程的挂起实现无阻塞的 sleep
协程出现之后,我们其实完全可以让协程在需要 sleep 的时候挂起,100ms 之后再来恢复执行,完全不需要阻塞当前线程。
渡劫 C++ 协程(5):协程的调度器
为了实现协程的异步调度,我们需要提供调度器的实现。调度器听起来有些厉害,但实际上就是负责执行一段逻辑的工具。
渡劫 C++ 协程(4):通用异步任务 Task
协程主要用来降低异步任务的编写复杂度,异步任务各式各样,但归根结底就是一个结果的获取。本节我们将定义一个类型 `Task` 来作为协程的返回值。`Task` 类型可以用来封装任意结果的返回。
渡劫 C++ 协程(3):序列生成器的泛化和函数式变换
除了实现一个简单的序列生成器以外,我们还可以对序列生成器产生的数据流做进一步的筛选和处理,而这一切都可以基于协程去实现。
渡劫 C++ 协程(2):实现一个序列生成器
序列生成器通常的实现就是在一个协程内部通过某种方式向外部传一个值出去,并且将自己挂起,外部调用者则可以获取到这个值,并且在后续继续恢复执行序列生成器来获取下一个值。
渡劫 C++ 协程(1):C++ 协程概览
本文我们介绍了一些 C++ 协程的各种概念和约定,内容看似有些复杂,不过 C++ 协程的概念其实就这么多。
渡劫 C++ 协程(0):前言
C++ 20 标准发布之后,协程终于正式成为 C++ 特性当中的一员。为了帮助大家认识和了解 C++ 协程的设计思路以及基本用法,我计划写几篇文章来介绍一下 C++ 协程的相关特性。