gevent的強大所在

當咱們在受限於網絡或IO的函數中使用gevent,這些函數會被協做式的調度,gevent的真在能力會獲得發揮。
網絡

Gevent處理了全部的細節,來保證你的網絡會在可能的時候,隱式交出greenlet上下文的執行權。這樣的一種用法是如何的強大,怎麼強調都不爲過。舉例說明函數

下面例子中的select()函數一般是一個在各類文件描述符上輪詢的阻塞調用。spa

import timeevent

import geventimport

from gevent import selectlambda

start = time.time()select

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

def gr1():gevent

    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),

])

相關文章
相關標籤/搜索