协程libco
文章平均质量分 90
shenmingik
于现在,对话未来
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
libco —— 安装与使用
文章目录libco的安装libco库的简单使用参考文献libco的安装可以直接从 Tencent 的 GitHub 仓库中拉取源码:ubuntu@VM-0-2-ubuntu:~/libco$ git clone https://github.com/Tencent/libco.git然后 转到下载的/libco目录,执行make命令ubuntu@VM-0-2-ubuntu:~/libco$ cd libco/ubuntu@VM-0-2-ubuntu:~/libco/libco$ make然原创 2021-05-22 17:54:33 · 1460 阅读 · 1 评论 -
拥抱新技术 —— 协程
文章目录什么是协程协程之于线程写在前面:本文主要针对使用C/C++或有C/C++基础的读者,讨论Tencent的开源网络库libco什么是协程很多人描述协程为 “轻量级线程” 、 “用户态线程” 等等。之前博主对这个东西也很迷惑?这都是啥!!!不急,博主将会写一系列文章来理清楚协程:协程库libco的安装和使用libco的关键数据结构为了理清楚协程,我们还得对线程的概念进行回忆一下:shenmingik:线程是操作系统能够进行运算调度的最小单位。被包含在进程之中,是进程的实际运原创 2021-05-22 20:02:41 · 1404 阅读 · 11 评论 -
libco —— 关键数据结构及关系
文章目录协程对象:stCoRoutine_t协程运行环境:stCoRoutineEnv_t写在前面:此文章是协程专栏中拥抱新技术——协程的子篇,建议新手从拥抱新技术——协程开始阅读。协程对象:stCoRoutine_t在Linux中,不管是进程还是线程,其都是一种抽象出来的概念,必然有其实体。协程也不例外。协程的实体是一个叫做stCoRoutine_t的结构体,这个结构体定义在co_routine_inner.h中,具体结构及相关注释如下:struct stCoRoutine_t{ st原创 2021-05-23 14:11:01 · 351 阅读 · 1 评论 -
libco ——从协程的使用来理清逻辑(系列专栏精华)
文章目录协程的创建:co_create()初始化线程环境:co_init_curr_thread_env()创建协程对象:co_create_env()初始化CPU上下文:coctx_init小结协程的启动:co_resume()加载上下文信息:coctx_make()协程的切换:co_swap()libco精华 —— 上下文信息切换:coctx_swap()小结协程的挂起:co_yield_env()协程的退出参考文献协程的创建:co_create()前面系列的文章已经提到过来,libco协程使用的第原创 2021-05-23 17:09:08 · 1272 阅读 · 0 评论 -
libco —— 协程调度(libco终章)
文章目录协程的阻塞和线程的阻塞主协程和协程调度的关系再看协程的挂起和恢复执行参考文献呼,整个libco库终于快是要剖析完了。整个人算是对协程以及操作系统的调度有了新的认识。协程的阻塞和线程的阻塞之前的博客,我们分析了libco的协程从创建到启动,挂起以及最后退出的一个过程。同时,我们也认识到,协程本质的执行是串行的。在之前协程的安装与使用中,我们提到了一个生产者消费者例子。在producer协程函数中,最后会调用poll函数等待一秒,comsumer函数也会调用co_cond_timedwait函数原创 2021-05-25 17:09:03 · 912 阅读 · 0 评论
分享