理解协程的实例分析1 - Go语言中文社区

理解协程的实例分析1


import asyncio

async def a(t):

    print('-->', t)

    await asyncio.sleep(0.5)

    print('<--', t)

    return t * 10

def main():

    futs = [a(t) for t in range(6)]

    # a(t)函数是一个异步函数,协程对象,所以这里打印出来的futs列表是一堆协程对象

    print(futs)

    # gather这里要用*futs拆包

    ret = asyncio.gather(*futs)

    # 这里的ret还没有被真正执行所以打印出来是pending

    print(ret)

    loop = asyncio.get_event_loop()

    ret1 = loop.run_until_complete(ret)

    # 这里ret已经执行完了,所以打印出来是finished result

    print(ret)

    print(ret1)

main()

版权声明:本文来源简书,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.jianshu.com/p/33136b3cc1e0
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-01-12 13:07:57
  • 阅读 ( 840 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢