其他分享
首页 > 其他分享> > 五、协程实现

五、协程实现

作者:互联网

解决阻塞问题:

import asyncio

async def request(url):
    print("正在请求的url",url)
    print('请求成功')
    return url
#async修饰的函数,调用之后返回一个协程对象
c = request("www.baidu.com")
#===========1方法==============
#创建一个事件循环对象
loop = asyncio.get_event_loop()
#将协程对象注册到loop中,然后启动loop
loop.run_until_complete(c)

#===========2方法:task的使用==============
loop = asyncio.get_event_loop()
#基于loop创建一个task对象
task = loop.create_task(c)
print(task)
#执行task
loop.run_until_complete(task)
print(task,"被执行后")

#===========2方法:future的使用==============
loop = asyncio.get_event_loop()
task = asyncio.ensure_future(c)
print(task)
loop.run_until_complete(task)
print(task)


def callback_func(task):
    print(task.result())

#绑定会掉函数
loop = asyncio.get_event_loop()
task = asyncio.ensure_future(c)
#将回掉函数返回到任务对象中
task.add_done_callback(callback_func)
loop.run_until_complete(task)

 

标签:task,协程,实现,print,run,event,loop,asyncio
来源: https://www.cnblogs.com/jxyl/p/16585138.html