http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html------------------------------上一篇文章协程代码的来龙去脉,值得一读。
分类:
其他好文 时间:
2015-05-24 20:17:10
阅读次数:
86
#include typedef struct{ int i; int num; int state;} task;#define crBegin(state) \ switch (state) { case 0:#define crReturn(state, ret...
分类:
其他好文 时间:
2015-05-24 01:19:31
阅读次数:
129
转载RPC框架实现RPC(Remote Procedure Call,远程过程调用)框架是分布式服务的基石,实现RPC框架需要考虑方方面面。其对业务隐藏了底层通信过程(TCP/UDP、打包/解包、序列化/反序列化),使上层专注于功能实现;框架层面,提供各类可选架构(多进程/多线程/协程);应对设备故...
分类:
其他好文 时间:
2015-05-16 01:23:51
阅读次数:
270
最近到处在争论这些话题,发现很多人对一些基础的常识并不了解,在此发表一文做一下解释。此文未必能解答所有问题,各位能有一个大致的了解就好。 C10K的由来 大家都知道互联网的基础就是网络通信,早期的互联网可...
分类:
其他好文 时间:
2015-05-15 20:04:32
阅读次数:
160
GoLang之协程目前,WebServer几种主流的并发模型:多线程,每个线程一次处理一个请求,在当前请求处理完成之前不会接收其它请求;但在高并发环境下,多线程的开销比较大;基于回调的异步IO,如Nginx服务器使用的epoll模型,这种模式通过事件驱动的方式使用异步IO,使服务器持续运转,但人的思...
分类:
其他好文 时间:
2015-05-15 17:22:28
阅读次数:
116
RPC(Remote Procedure Call,远程过程调用)框架是分布式服务的基石,实现RPC框架需要考虑方方面面。其对业务隐藏了底层通信过程(TCP/UDP、打包/解包、序列化/反序列化),使上层专注于功能实现;框架层面,提供各类可选架构(多进程/多线程/协程);应对设备故障(高负载/死机)...
分类:
其他好文 时间:
2015-05-15 01:09:47
阅读次数:
1283
用 greenlet 协程处理异步事件 自从 PyCon 2011 协程成为热点话题以来,我一直对此有着浓厚的兴趣。为了异步,我们曾使用多线程编程。然而线程在有着 GIL 的 Python 中带来的性能瓶颈和多线程编程的高出错风险,“...
分类:
编程语言 时间:
2015-05-07 19:04:11
阅读次数:
157
前面几篇文章从代码层面介绍了Kilim的基本原理,但是对于其中的一些细节,比如Task的执行状态如何管理等问题从代码上依然得不到答案,本文即再深入到字节码层面来解答。
1. Kilim字节码改写前后的代码有什么区别?
这里还是先上Kilim官方文档中的一张图,这张图清晰的展现出原始的代码与经Kilim改写后的协程代码。
可以看出左边的原始代码,与我们常见的函数相比有所不同,这里显示声明...
分类:
编程语言 时间:
2015-05-02 20:47:28
阅读次数:
249
tornado中的协程是如何工作的本文将按以下结构进行组织,说明tornado中协程的执行原理
协程定义
生成器和yield语义
Future对象
ioloop对象
函数装饰器coroutine
总结
协程定义
Coroutines are computer program components that generalize subroutines for nonpreemptive mult...
分类:
其他好文 时间:
2015-05-02 06:20:14
阅读次数:
1046
RPC(Remote Procedure Call,远程过程调用)框架是分布式服务的基石,实现RPC框架需要考虑方方面面。其对业务隐藏了底层通信过程(TCP/UDP、打包/解包、序列化/反序列化),使上层专注于功能实现;框架层面,提供各类可选架构(多进程/多线程/协程);应对设备故障(高负载/死机)...
分类:
其他好文 时间:
2015-05-01 00:37:36
阅读次数:
291