C++ boost协程技术介绍

C++ boost协程技术介绍,第1张

C++ boost协程技术介绍

  协程在C++20中已经加入了,但并不完善,C++标准库的协程将在C++23中正式推出。其它语言,例如go、python也是默认支持协程,C++相对来说落后了。
  Boost在1.53版本就推出了协程库,本篇博客基于Boost1.76版本,来介绍协程库。1.53版本的BoostCoroutine 现在已被弃用,请使用Boost.Coroutine2。

什么是协程

  在谈协程之前,我们先谈谈函数,函数有入口地址,而且只有一个,返回也只有一个,而协程却可以多次进入,多次返回。
  协程,英文名是称为Coroutine,微信的后台C++库,libco也应用了大量协程,早在2013年已经开源,有兴趣的可以去拜读。可以在指定地点暂停协程和恢复协程,这意味着协程会保存自己的上下文,不同于线程, 协程的上下文保存是不需要进入内核态的,完全可以在用户态完成。
  下面看看协程的分类:

有栈协程

  每个协程都拥有自己的栈,协程上下文保存在自己的栈中,切换协程就是切换栈,然后恢复栈中的上下文,这种方法

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5115295.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存