美文网首页
2018-12-16 协程

2018-12-16 协程

作者: 太阳出来我爬山坡 | 来源:发表于2018-12-16 13:15 被阅读0次

    协程 又叫微线程,纤程
    python 对协程的实现是通过generator实现的

    1. 生成器
      -含有yield 有函数
      -生成器启动不会像函数一样马上执行
      -需要通过next(生成器)启动
      -yield 语句会返回对象并暂停
      """

    def a():

    print(a.name)

    a()

    def myGen():
    print('第一次执行')
    yield 1 #返回1,并暂停
    print('第二次执行')
    yield 2 #返回 2,并停
    print('第三次执行')
    #没有代码了,抛出StopIter

    g= myGen() #创建生成器
    print(g)
    r1 = next(g)
    print(r1)
    r2 = next(g)
    print(r2)
    r3 = next(g)
    print(r3)

    -- coding: utf-8 --

    send语句
    -yield
    """
    def consumer():
    '''消费者'''
    while True:
    item = yield '好吃'
    print(f'我收到了{item}')

    def product(c):
    next(c) #激活生成器
    for i in range(10):
    item = '包子%s' % i
    print(f'我生产了:{item}')
    res = c.send(item) #把item 发送给生成器,生成器打印 我收到了item
    print(res) #打印yield 返回的值 '好吃'
    c.close() #关闭生成器

    if name == 'main':
    c = consumer()
    product(c)


    相关文章

      网友评论

          本文标题:2018-12-16 协程

          本文链接:https://www.haomeiwen.com/subject/oyatkqtx.html