![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
协程
文章平均质量分 90
复习备考的龙龙
学习C++的一名小学生,欢迎大家沟通交流~
展开
-
小白学协程笔记4-tencent libco解析-2021-2-22
文章目录前言一、结构体定义1.协程栈定义2.协程定义3.协程上下文定义4.协程环境定义二、API定义1.协程调度器初始化及获取函数2.协程创建函数3.协程启动/恢复函数4.协程挂起函数5.协程切换函数总结前言本文对腾讯微信的协程库libco进行了简单解析,如有不当,请指正。一、结构体定义1.协程栈定义libco使用的协程栈定义如下,支持独立栈和共享栈两种方式。struct stStackMem_t{ stCoRoutine_t* occupy_co; // 当前正在使用该共享栈的协程.原创 2021-02-22 16:39:14 · 316 阅读 · 0 评论 -
小白学协程笔记3-实现自己的协程库(独立栈,共享栈)-2021-2-22
文章目录前言一、协程库实现-独立栈1.协程结构体定义2.协程调度器定义3.协程创建函数4.协程启动/恢复函数5.协程挂起函数6.判断协程是否运行完毕函数7.使用示例二、协程库实现-共享栈1协程及调度器结构体定义1.协程创建删除工具函数2.调度器创建、关闭函数3.协程创建函数4.协程挂起函数5.协程启动/恢复函数6.其余函数7.应用实例总结前言前面介绍了协程的基本概念和协程切换的常见方式以后,本文将介绍如何通过c语言实现自己的协程库,分为独立栈和共享栈两种实现,代码见git仓库。一、协程库实现-独.原创 2021-02-22 11:48:18 · 860 阅读 · 0 评论 -
小白学协程笔记2-c语言实现协程-2021-2-10
文章目录前言一、c语言中协程切换方式二、使用setjmp 和 longjmp实现协程切换1.引入库2.读入数据总结前言前面我们已经了解到协程的基本概念以及对称协程和非对称协程的定义,本节将对如何用c语言在用户态实现协程切换作以简单介绍。一、c语言中协程切换方式c/c++在C++20标准之前并不支持协程,所以很多大佬都通过自己的方法实现了协程切换,主要分类如下:1.使用setjmp 和 longjmp实现。2.使用switch-case等技巧实现。3.使用汇编语言实现。4.使用ucont.原创 2021-02-17 11:13:47 · 528 阅读 · 1 评论 -
小白学协程笔记1-协程概念初识-2021-2-10
文章目录前言一、从进程、线程到协程1.进程2.线程3.协程二、对称协程和非对称协程三、常见语言对协程的支持总结前言本文对协程的概念做了简要介绍,适合初次接触协程的小白。一、从进程、线程到协程1.进程学习操作系统知识时,进程是必然绕不开的一个概念。什么是进程呢?简单来说,进程是程序的一个运行实例,是正在运行程序的一种抽象。比如当你打开游戏时,操作系统中就会创建一个游戏进程,当退出游戏时,对应进程也会终止。那为什么要引入进程这一个概念呢?众所周知,操作系统具有并发、共享、异步、虚拟的特性。其中.原创 2021-02-10 11:58:36 · 426 阅读 · 0 评论