上一页 1 ··· 5 6 7 8 9 10 11 下一页
摘要: 之前在开发中就发现“dirty”是一种不错的解决方案:可以用来延缓计算或者避免不必要的计算。后来在想,这应该也算一种设计模式吧,于是搜索“Dirty设计模式”,没有什么结果,然后换成英文“Dirty design pattern”,搜到了《game programming patterns》这本电子 阅读全文
posted @ 2017-02-15 13:46 xybaby 阅读(3976) 评论(0) 推荐(0) 编辑
摘要: 在前文已经介绍过了gevent的调度流程,本文介绍gevent一些重要的模块,包括Timeout,Event\AsynResult, Semphore, socket patch,这些模块都涉及当前协程与hub的切换。本文分析的gevent版本为1.2 Timeout 这个类在gevent.time 阅读全文
posted @ 2017-02-13 18:37 xybaby 阅读(3283) 评论(0) 推荐(0) 编辑
摘要: 在前面的文章曾介绍过gunicorn的syncworker,本文介绍其中一种asyncworker:GeventWorker。类图如下: 可见GeventWorker重载了init_process(这个方法是Worker唯一暴露给外界的接口),源码如下: 1 def init_process(sel 阅读全文
posted @ 2017-02-10 09:18 xybaby 阅读(4520) 评论(0) 推荐(1) 编辑
摘要: gevent是目前应用非常广泛的网络库,高效的轮询IO库libev加上greenlet实现的协程(coroutine),使得gevent的性能非常出色,尤其是在web应用中。本文介绍gevent的调度流程,主要包括gevent对greenlet的封装和使用,以及greenlet与libev的协作。阅 阅读全文
posted @ 2017-02-07 15:19 xybaby 阅读(14856) 评论(3) 推荐(6) 编辑
摘要: 如果一个函数直接或者间接调用了自己,那么就形成了递归(recursion),比如斐波那契数列的一个实现 def fib(n): if n <= 2: return 1 else: return fib(n - 1) + fib(n - 2) 递归一定要有结束条件,否则就形成了死循环, 比如下面的例子 阅读全文
posted @ 2017-01-27 14:47 xybaby 阅读(5695) 评论(0) 推荐(2) 编辑
摘要: 在前面的文章中提到python原生的generator是semicoroutine,而greenlet是 真 协程。本文内容主要来自对官网文档的翻译,在其中也加入了很多自己的理解和例子。主要包括以下内容:什么是greenlet,greenlet的切换与函数调用的区别,greenlet的生命周期,以及 阅读全文
posted @ 2017-01-22 21:07 xybaby 阅读(21795) 评论(1) 推荐(11) 编辑
摘要: 本文主要介绍python中Enhanced generator即coroutine相关内容,包括基本语法、使用场景、注意事项,以及与其他语言协程实现的异同。 enhanced generator 在上文介绍了yield和generator的使用场景和主意事项,只用到了generator的next方法 阅读全文
posted @ 2017-01-22 09:11 xybaby 阅读(3217) 评论(0) 推荐(3) 编辑
摘要: 本文将由浅入深详细介绍yield以及generator,包括以下内容:什么generator,生成generator的方法,generator的特点,generator基础及高级应用场景,generator使用中的注意事项。本文不包括enhanced generator即pep342相关内容,这部分 阅读全文
posted @ 2017-01-21 21:18 xybaby 阅读(22431) 评论(5) 推荐(20) 编辑
摘要: gunicorn支持不同的worker类型,同步或者异步,异步的话包括基于gevent、基于eventlet、基于Aiohttp(python版本需要大于3.3),也有多线程的版本。下面是gunicorn当前版本(19.6.0)支持的Worker类型: sync eventlet - Require 阅读全文
posted @ 2017-01-20 16:00 xybaby 阅读(2872) 评论(1) 推荐(0) 编辑
摘要: 在这篇文章中,提到了Master进程对信号的处理函数,其中有两个信号比较有意思。 SIGHUP:用来热更新(Reload)应用 SIGUSR2:用来在线升级(upgrade on the fly)gunicorn 下面来详细看一下: SIGHUP: Reload the configuration, 阅读全文
posted @ 2017-01-20 09:49 xybaby 阅读(4269) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 下一页