C/C++ 协程
蓝子娃娃
越努力,越幸运!!!
展开
-
C++ libco 介绍与应用
文章目录导论准备知识协程的背景libco 使用简介libco 协程关键数据结构及其关系libco 协程的生命周期事件驱动与协程调度libco 总结导论 使用 C++ 来编写高性能的网络服务器程序,从来都不是一件很容易的事。 在没有应用任何网络框架的情况下,从 epoll/kqueue 直接码起的时候更是如此。即便使用 libevent、libev 这样事件驱动的网络框架去构建你的服务,程序结构依然不会简单。 为何会这样?因为这类框架提供的都是非阻塞式的、异步的编程方式,这需要思维方式的转变。转载 2020-08-24 17:46:48 · 5837 阅读 · 3 评论 -
libco 协程库详解
文章目录协程是什么?协程用在哪里?协程实现逻辑协程例子C/C++ 协程libco 协程的创建和切换协程的创建和运行协程上下文的创建和切换如何使用 libco通过 Epoll 管理和唤醒协程EPOLL 事件循环协程到底解决什么问题协程是什么?轻量级的调度运行单位。协程不是进程,也不是线程,它就是一个函数,一个特殊的函数 —— 可以在某个地方挂起,并且可以重新在挂起处继续运行。所以说,协程与进程、线程相比,不是一个维度的概念。一个进程可以包含多个线程,一个线程也可以包含多个协程,也就是说,一个线程内转载 2020-08-14 13:39:21 · 1776 阅读 · 0 评论 -
C/C++协程库libco:微信怎样漂亮地完成异步化改造
文章目录微信后端遇到了问题异步化改造方案的考量协程支持的特性libco 框架接管历史遗留的同步风格API千万级协程支持协程私有变量gethostbyname 的 Hook 方法协程信号量截至2020年第一季度,微信及WeChat的合并月活跃帐户数达12.025亿。不可否认,当今的微信后台拥有着强大的并发能力。不过,正如罗马非一日建成。微信的技术也曾经略显稚嫩。微信诞生于2011年1月,当年的用户规模为0.1亿左右;到了2013年11月,微信月活跃用户数达到了3.55亿,一跃成为了亚洲地区拥有最大用户转载 2020-08-14 13:38:16 · 475 阅读 · 0 评论 -
C++ 协程之协程介绍
文章目录产生背景协程和异步 IO以及多线程的对比处理 IO 密集型任务协程的实现机制协程函数的特点有栈协程无栈协程有栈协程和无栈协程对比产生背景对于后台开发,我们有一个非常重要的问题即使用尽可能少的服务器资源处理海量的请求,除了我们在架构上做多机自动扩容外,我们还必须尽可能提高单机硬件的利用率(CPU利用率 + IO利用率)。为了提高硬件的利用率往往我们采用三种技术路径:多线程异步 IO协程协程和异步 IO以及多线程的对比1. 多线程多线程可以充分利用 CPU 的多核,实现真正的并转载 2020-08-14 08:40:40 · 804 阅读 · 0 评论