python – 使用’yield’进行上下文切换

我正在阅读gevent教程并看到了这个有趣的片段:

import gevent

def foo():
    print('Running in foo')
    gevent.sleep(0)
    print('Explicit context switch to foo again')

def bar():
    print('Explicit context to bar')
    gevent.sleep(0)
    print('Implicit context switch back to bar')

gevent.joinall([
    gevent.spawn(foo),
    gevent.spawn(bar),
])

执行流程就像这个foo – >吧 – > foo – >吧.
如果没有gevent模块但是使用yield语句,是不是可以做同样的事情?
我一直试图用’收益’来做这件事,但由于某种原因我不能让它工作……

上一篇:git 分支管理策略 与 物理实现 --author by阮一峰 & 小鱼


下一篇:python – gevent.wait和gevent.joinall有什么区别?