这两天读了一下Python的Condition实现源码,是实现Queue的工具之一,发现是非常朴素的sleep->loop->query模式。源码很少,直接贴出,就不做注释了:)def wait(self, timeout=None): """Wait until notified or until a timeout occurs....
引子以前对Gevent(Greenlet)为什么比Thread快,只有一个隐约的理解,之前的看到过的说法是,上下文切换的成本上,Greenlet比Thread低很多,但是具体低在哪些地方呢?刚好这段时间阅读了CSAPP,对这个问题又有了新的看待的角度:)参考了如下三篇文章和greenlet的实现:https://www.ibm.com/developerworks/cn/linux/kern...
Why?Web产品一旦上线,重启应用就会造成业务中断,对于实时性要求很高或者业务关联紧密的应用,重启程序是非常重的代价。将代码对象序列化之后保存到存储内(比如redis, 关系数据库),在运行业务的时候通过制定的路由机制加载这部分业务。对于线上应用,使用这种方式可以更加方便的部署新业务。对于性能要求不是很高的场合,可以牺牲一些性能做代码动态装载。