协程
大约 1 分钟
协程
前言
既然是“现代” C++ 并发编程教程,怎么能不聊协程呢?
C++20 引入了协程语法,新增了三个用作协程的关键字:co_await
、co_yield
、co_return
。但并未给出标准协程库,协程库在 C++23 被引入。
希望您拥有 gcc14
、clang19
,Visual Studio 2022 17.11
。
我们假设您对 C++20 的协程一无所知、假设您对协程这个概念一无所知、假设您不了解其它语言的协程实现(如 Python、java)。
绝大多数人对协程基本可以说是一无所知,但是应该都听过这个名字,大概是因为这些编程语言都在新版本中引入它作为核心语言特性。
这带来了许多的热度,不过这并不完全算是好事,许多的营销号一样的讲述,基本全部都是错误的。
据我所知,在我在 B站发布正经 C++20 协程的教学视频之前,几乎所有打着 C++ 旗号说什么协程的,都是胡言乱语。不过也有一些不错的,如:等疾风、happyyang的百草园,都出过至少算作正经的 C++20 协程的教学视频。
- C++20 的协程是复杂的。
不管是使用上还是概念上,引入了许多新颖的做法。