同一线程中的两个任务切换
from greenlet import greenlet
def eat(name):
print('%s eat 1' %name)
g2.switch('egon')
print('%s eat 2' %name)
g2.switch()
def play(name):
print('%s play 1' %name)
g1.switch()
print('%s play 2' %name)
g1=greenlet(eat)
g2=greenlet(play)
g1.switch('egon')
遇到IO阻塞自动切换(推荐)
from gevent import monkey;monkey.patch_all()
import gevent
import time
def eat(name):
print('%s eat 1'%name)
time.sleep(2) #模仿IO阻塞
print('%s eat 2'%name)
return 'eat'
def play(name):
print('%s play 1' % name)
time.sleep(1)
print('%s play 2' % name)
return 'paly'
start = time.time()
g1 = gevent.spawn(eat,'egon')
g2 = gevent.spawn(play,'egon')
gevent.joinall([g1,g2])
print('father',(time.time()-start))
print(g1.value)
print(g2.value)
本文来自博客园,作者:一石数字欠我15w!!!,转载请注明原文链接:https://www.cnblogs.com/52-qq/p/7458844.html

浙公网安备 33010602011771号