博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gevent的强大所在
阅读量:7143 次
发布时间:2019-06-29

本文共 702 字,大约阅读时间需要 2 分钟。

hot3.png

当我们在受限于网络或IO的函数中使用gevent,这些函数会被协作式的调度,gevent的真在能力会得到发挥。

Gevent处理了所有的细节,来保证你的网络会在可能的时候,隐式交出greenlet上下文的执行权。这样的一种用法是如何的强大,怎么强调都不为过。举例说明

下面例子中的select()函数通常是一个在各种文件描述符上轮询的阻塞调用。

import time

import gevent

from gevent import select

start = time.time()

tic = lambda:'at %1.1f seconds'%(time.time() - start)

def gr1():

    print 'Started polling:%s'%tic()

    select.select([],[],[],2)

    print 'Ended polling:%s'%tic()

def gr2():

    print 'Started polling:%s'%tic()

    select.select([],[],[],2)

    print 'Ended polling:%s'%tic()

def gr3():

    print 'Hey lets do some stuff while the greedlets poll,%s'%tic()

gevent.joinall([

    gevent.spawn(gr1),

    gevent.spawn(gr2),

    gevent.spawn(gr3),

])

转载于:https://my.oschina.net/u/1032854/blog/268014

你可能感兴趣的文章
js实现队列互联网机顶盒实战应用
查看>>
IT的哥一样是传说!
查看>>
MVC中的统一验证机制~终极了(自己的改良版)
查看>>
VC中建立程序的关联文件
查看>>
IOS core text计算文本高度及最大宽度
查看>>
Lighthead - SiteCrawler
查看>>
什么是SSL证书?
查看>>
jQuery 中 find()、trim()、replace()以load()函数和页面注册事件的应用
查看>>
Oracle EBS Command
查看>>
C#继承与构造函数的调用
查看>>
java技术
查看>>
MongoVUE破解方法
查看>>
Vbox导入已经安装好的Redhat系统 重启网卡 提示 “Device eth0 does not seem to be present, delaying initialization.”...
查看>>
并非如你想象的那般强大,带你重新认识3D打印
查看>>
JBoss开发者框架: JBoss技术文档中心
查看>>
【英语天天读】First Inaugural Address
查看>>
解决ASP.NET中的各种乱码问题
查看>>
博客界面终于变成了自己比较满意的感觉
查看>>
使用hibernate和struts2实现分页功能
查看>>
生成指定大小文件
查看>>