在上一篇里面介绍了gevent的最主要的功能,先来来了解一下gevent里面一些更加高级的功能。 事件 事件是一种可以让greenlet进行异步通信的手段。 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import ...
分类:
编程语言 时间:
2016-04-15 00:39:49
阅读次数:
321
gevent是Python的一个用于网络IO的函数库,其中应用到了 coroutine(协同程序) 的思想。首先来了解下目前网络框架的几种基本的网络I/O模型: 阻塞式单线程:这是最基本的I/O模型,只有在处理完一个请求之后才会处理下一个请求。它的缺点是效能差,如果有请求阻塞住,会让服务无法继续接受 ...
分类:
编程语言 时间:
2016-04-15 00:20:03
阅读次数:
268
同步与异步的性能区别 上面程序的重要部分是将task函数封装到Greenlet内部线程的gevent.spawn。 初始化的greenlet列表存放在数组threads中,此数组被传给gevent.joinall 函数,后者阻塞当前流程,并执行所有给定的greenlet。执行流程只会在 所有gree
分类:
数据库 时间:
2016-03-22 06:16:09
阅读次数:
196
最近迷上了gevent所以研究很多gevent相关的东西。 但是我现在不想写相关gevent和greenlet的东西。因为这一块内容实在太多太大太杂,我自己也还没有完全弄明白,所以等我完全搞清楚测试也测试过了之后。我会写一篇比较系统一点的东西来把我最近研究,和测试过的东西都展现出来。 今天先写一个基
分类:
其他好文 时间:
2016-03-10 01:36:10
阅读次数:
1736
为什么用web.py? python的web框架有很多,比如webpy、flask、bottle等,但是为什么我们选了webpy呢?想了好久,未果,硬要给解释,我想可能原因有两个:第一个是兄弟项目组用webpy,被我们组拿来主义,直接用了;第二个是我可能当时不知道有其他框架,因为刚工作,知识面有限。...
分类:
编程语言 时间:
2015-12-19 06:32:44
阅读次数:
341
这个又牛X 一点点。。这还不涉及IO,如果调用GEVENT之类作异步IO或非阻塞IO,那就大框架都有啦。。###################################################################### Iterative server - webserv...
分类:
编程语言 时间:
2015-11-25 18:46:51
阅读次数:
175
这个只是作了第一个样例,里面还有很多高级的技巧,希望以后用得着。我觉得因为以前看过几本LINUX内核,关于异步非阻塞IO,信号,锁之类的,所以理解起来,还可以。import geventdef foo(): print 'Running in foo' gevent.sleep(0) ...
分类:
编程语言 时间:
2015-11-18 22:56:57
阅读次数:
156
windows 安装gevent python package错误解决办法:错误信息: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)解决办法: 下载安装 Microsoft Visual C++ Compi.....
分类:
编程语言 时间:
2015-11-10 22:20:15
阅读次数:
224
多线程和多进程模型的选用内容目录:多进程模型多线程模型选用参考多线程和多进程模型的选用这里的线程指通过linux的pthread_create而产生的原生线程,线程资源很宝贵,能被操作系统的任务调度器看见的(不是python gevent、go gorouine里的概念);我们讨论以下两种模型;多进...
分类:
编程语言 时间:
2015-10-11 12:56:13
阅读次数:
273