119-python-协程


"""
# 协程 :
# 本质上就是线程,只是在线程中来回切换(遇到IO才切换)
# 进程和线程中的任务切换由操作系统完成
#

greenlet 模块:
# 在线程中遇到 IO 的时候,将 IO 的执行的过程中这段时间 进行切换到另一个线程中
# 协程任务之间的切换由程序(代码)完成,只有遇到协程模块能识别的IO操作的时候,程序才会进行任务切换,实现并发的效果
"""

# 真正的协程模块就是使用 greenlet 完成的切换
from greenlet import greenlet


def eat():
    print('eating start')
    g2.switch() # 会记录当前 ,并且换到另一个程序中
    print('eating end')
    g2.switch()

def play():
    print('playing start')
    g1.switch()
    print('playing end')

g1 = greenlet(eat)
g2 = greenlet(play)
g1.switch()

  

posted @ 2018-12-15 17:27  _Q  阅读(79)  评论(0编辑  收藏  举报