协程技术理解
什么?对于多线程的调试你已经受够了?那不如一起来探究协程的奥秘吧!
the cool grass
Advanced Programming in the UNIX Environment
展开
-
协程调度器 Coroutine源码分析
最近准备对一个小巧但又不失精妙和整体的脉络的协程调度器动手了,为了能够深入的理解协程的调度机制和原理,特意分析了一个携程调度器的源码:coroutine。coroutine.h#pragma//协程的四种不同的状态#define COROUTINE_DEAD 0#define COROUTINE_READY 1#define COROUTINE_RUNNING 2#define C...原创 2019-05-20 23:09:27 · 1900 阅读 · 3 评论 -
协程(Coroutine)是什么?
Coroutine不过是一种特殊的subroutines(Subroutines即过程调用)。以协程与函数类比比较,当调用一个函数时,程序从函数的起始地址开始执行,到函数执行结束返回,这就是整个函数的生命周期。函数在它的生命周期中,只可能返回一次。而协程在执行的过程中可以调用其他的协程,保护上下文切换到其他协程,之后协程调用返回恢复到调用的地址继续执行。这个过程类似于多线程的线程的切换。在这个过程...原创 2019-05-19 21:24:14 · 1374 阅读 · 0 评论 -
C++ 开源协程库 libco——原理及应用
1 导论使用 C++ 来编写高性能的网络服务器程序,从来都不是件很容易的事情。在没有应用任何网络框架,从 epoll/kqueue 直接码起的时候尤其如此。即便使用 libevent, libev这样事件驱动的网络框架去构建你的服务,程序结构依然不会很简单。为何会这样?因为这类框架提供的都是非阻塞式的、异步的编程接口,异步的编程方式,这需要思维方式的转变。为什么 golang 近几年能够...转载 2019-05-19 13:10:45 · 4891 阅读 · 4 评论 -
协程实现 - 生产者消费者
初识协程1. 一个简单生产者消费者的例子在多线程中一个耳熟能详经典的例子:生产者消费者。那么它在协程中的应用场景如何呢?让我们就从这个简单的例子入手,来看一看使用libco实现的生产者与消费者。libco协程实现的生产者消费者:#include <unistd.h>#include <stdio.h>#include <stdlib.h>#incl...原创 2019-05-19 10:24:38 · 1112 阅读 · 0 评论 -
协程,你知道吗?
二个号台风交互根据,VB程序原创 2019-05-18 21:53:17 · 1164 阅读 · 0 评论 -
协程 及 libco介绍
libco 是腾讯开源的一个协程库,主要应用于微信后台RPC框架,下面我们从为什么使用协程、如何实现协程、libco使用等方面了解协程和libco。 why协程为什么使用协程,我们先从server框架的实现说起,对于client-server的架构,se...转载 2019-05-18 22:49:31 · 840 阅读 · 0 评论