现代C++并发编程教程
  • README
  • 此处存放作业
  • 阅读须知
    • 基本概念
    • 使用线程
    • 共享数据
    • 同步操作
    • 内存模型与原子操作
    • 协程
    • 详细分析
      • std::thread 的构造-源码解析
      • std::scoped_lock 的源码实现与解析
      • std::async 与 std::future 源码解析
      • 线程池
  • image
    • 捐赠
Powered by GitBook
On this page
  1. 阅读须知

协程

Previous内存模型与原子操作Next详细分析

Last updated 7 months ago

前言

既然是“现代” 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++ 旗号说什么协程的,都是胡言乱语。不过也有一些不错的,如:、,都出过至少算作正经的 C++20 协程的教学视频。

  • C++20 的协程是复杂的。

不管是使用上还是概念上,引入了许多新颖的做法。

等疾风
happyyang的百草园