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协程技术介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cesium获取模型(Primitive
- 下一篇: Easyx-----c++实现经典Win