您的位置:首页 > 编程语言 > Python开发

Python中把协程变成任务方法详解

2017-09-12 22:28 549 查看
本文和大家分享的主要是python中把协程变任务相关内容,一起来看看吧,希望对大家学习python有所帮助。

  在这里使用 ensure_future()函数可以把一个协程封装成一个任务,然后这个任务就可以传送给别的代码,不过要注意的是这个函数不会开始执行协程,需要使用关键await才会开始执行:

  import asyncio

  async def wrapped():

  print('wrapped')

  return 'result'

  async def inner(task):

  print('inner: starting')

  print('inner: waiting for {!r}'.format(task))

  result = await task

  print('inner: task returned {!r}'.format(result))

  async def starter():

  print('starter: creating task')

  task = asyncio.ensure_future(wrapped())

  print('starter: waiting for inner')

  await inner(task)

  print('starter: inner returned')

  event_loop = asyncio.get_event_loop()try:

  print('entering event loop')

  result = event_loop.run_until_complete(starter())finally:

  event_loop.close()

  输出结果如下:

  entering event loop

  starter: creating task

  starter: waiting for inner

  inner: starting

  inner: waiting for<Task pending coro=<WRAPPED() asyncio_ensure_future.py:4="" at="" running="">>

  wrapped

  inner: task returned 'result'

  starter: inner returned

来源:大坡3D软件开发
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: