Jackarain 的 blog

喜欢 c++ 语言,在这里记录一些所见和所思...

µcoro 协程

5 October 2024


µcoro 是一个 c++20 的协程库,仅由单个头文件实现,且无任何三方依赖。。。

µcoro 最主要目标是为了完成一件事,就是将回调转换成协程,当然还提供了协程发起,协程存储变量绑定(类似于 thread local storage

众所周知,协程最主要用于将异步调用的回调变换成 co_await 同步形式的程序,在以往无论编写还是阅读异步代码,都会被回调将代码割裂在各个地方,十分不连贯,这种中断上下文也导致了思路容易中断,协程解决了这一问题。

µcoro 是由一个极易阅读和学习的 c++20 协程库,而且由 microcai 编写了一系列文章来阐述 c++20 协程的设计与使用等等细节。

这个库起因是 microcai 在写嵌入式编程时,他和我说到想用 c++20 的协程来完成他的嵌入式系统控制,当时他花了不少时间找到了一个号称简单的 c++20 协程库,虽号称简单实则并不简单,终于在他对代码一顿删减并作了大量修改之后,成功的运行在了 stm32、esp32、gd32 等等一众嵌入式芯片上,当他告诉我成功的时候,我很惊奇的同时并告诉他,你需要用的协程并不需要那么复杂,于是我花了一点时间,写了第一个最最基础的版本的协程给他替换了原来的库,在那之后,我就再也没想起来了。

直到有一天,他告诉我应该把这个代码创建一个仓库,这样可以让更多的人来学习 c++20 协程,毕竟目前为止还没有简单易学习实用的教程,网络上几乎所有 c++20 协程知识都是来自 lewissbaker 的那几篇文章,然而 lewissbaker 的文章主要是针对非常有经验的老手而言,并不是那种深入浅出形式,于是创建了这个仓库。

如果你想学习或使用 c++20 协程,那么从 µcoro 将会是一个不错的开始,有兴趣的话,请点击下方 µcorogithub 链接

µcoro




Comments

blog comments powered by Disqus