C/C++教程

C++ boost协程技术介绍

本文主要是介绍C++ boost协程技术介绍,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

什么是协程

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

有栈协程

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

这篇关于C++ boost协程技术介绍的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!