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)

  


 

相关文章:

  • 2021-11-15
  • 2022-12-23
  • 2022-12-23
  • 2021-10-07
  • 2021-08-07
  • 2021-12-26
猜你喜欢
  • 2021-10-05
  • 2021-11-20
  • 2021-09-26
  • 2022-12-23
  • 2022-12-23
  • 2021-06-13
  • 2022-12-23
相关资源
相似解决方案