协程_task对象

使用Python的aiohttp库和asyncio模块,通过创建并管理协程任务来并发获取多个网页内容,实现了高效的异步网络请求。代码中展示了如何创建task对象,并通过asyncio.wait()进行任务等待,最后使用asyncio.run()执行主任务。
import asyncio
# 例3 依赖await 返回值的
async def func3(index):
    print("func3 start {}".format(index))
    answer = await add(index)
    print("func3 end {}".format(answer))

async def add(index):
    print("add start {}".format(index))
    # await asyncio.sleep(2)
    print("add end {}".format(index))
    return 1+index

async def main():
    print("mian开始执行")
    task = [
        asyncio.create_task(func3(1)),
        asyncio.create_task(func3(2)),
        asyncio.create_task(func3(4)),
        asyncio.create_task(func3(5))
    ]
    done, pending = await asyncio.wait(task)
    print(done)
asyncio.run(main())
import asyncio
# 例3 依赖await 返回值的
async def func3(index):
    print("func3 start {}".format(index))
    answer = await add(index)
    print("func3 end {}".format(answer))

async def add(index):
    print("add start {}".format(index))
    # await asyncio.sleep(2)
    print("add end {}".format(index))
    return 1+index

task_list =(func3(1),func3(2),func3(4),func3(5))
done,pending = asyncio.run(asyncio.wait(task_list))
print(done)

import aiohttp

import asyncio

async def fetch(session, url):

async with session.get(url,verify_ssl=False) as response:

text = await response.text()

print(text)

async def main():

async with aiohttp.ClientSession() as session:

url_list = [

'https://python.org',

'https://www.baidu.com',

'https://www.pythonav.com'

]

tasks = [asyncio.create_task(fetch(session,url)) for url in url_list]

done, pending = await asyncio.wait(tasks)

if __name__ == '__main__':

asyncio.run(main())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值