本篇分析分为两个部分。libco源码分析。libco例子分析。首先进行源码的分析。
分析之前需要了解一下前置知识
1. 什么是协程?
2. 什么是共享栈?
源码分析思路:对每个.h.cpp进行分析,先分析.h再分析对应的.cpp。
建议阅读顺序:结构体->与结构体关系紧密的函数->其他函数
建议例子和源码分析一起阅读,阅读体验更佳。参考了大量其他人的博客,分析过程中会一一放出来,有助于源码的学习。
建议博客代码复制到markdown或者vscode等编译器,观看体验更佳。
学习libco可能需要的知识:epoll相关,线程,进程相关,汇编相关。
libco下载:去github下载源文件,然后make就可以运行相关例子。
源码分析
co_routine.h分析
co_routine.cpp分析
拖更:我又又又又拖更了,最近没啥时间,libco源码分析细节一点耗时较长,粗略的又不想写(。
所以近期会拖更,STL也拖更了x。如果想学习libco的,建议自己仔仔细细过一遍,收获很大。
相关博客:
libco协程库(https://github.com/Tencent/libco)
什么是协程?(https://www.liaoxuefeng.com/wiki/897692888725344/923057403198272)
什么是共享栈?(https://www.zhihu.com/question/52193579)
时间轮概念客参考该博客(https://blog.youkuaiyun.com/GreyBtfly/article/details/83688996)
__thread关键字(https://blog.youkuaiyun.com/wsj18808050/article/details/51603006)
libco的分析
https://blog.youkuaiyun.com/qq_25424545/article/details/81529717
https://blog.youkuaiyun.com/u011579138/article/details/81839840
https://segmentfault.com/a/1190000012561446
https://segmentfault.com/a/1190000012656741
https://segmentfault.com/a/1190000012834756