2.asyncio快速上手
事件循环:可以理解成一个死循环,去检测并执行某些代码
import asyncio
# 去生成或者获取一个事件循环
loop = asyncio.get_event_loop()
# 将任务放到事件循环
loop.run_until_complete(协程对象)
协程函数:定义函数的时候使用 async def 函数名()定义函数
async def test():
...
协程对象:执行协程函数()得到的写成对象
async def test():
...
result = func()
#注意:创建协程对象,函数内部代码并不会执行
执行协程对象:将协程对象加入的事件循环任务列表执行
result = test()
loop = asyncio.get_event_loop()
loop.run_until_complete(result) #把协程对象当成任务添加到事件循环
asyncio.run()
asyncio.run(result)
# Python3.7之后可以使用asyncio.run()方法执行
# 实际上run()内部相当于替我们创建了循环并加到任务
await等待
await+可等待对象
可等待对象:协程对象、Future对象、Task对象,->IO等待
await就是等待对象的值得到结果之后再继续往下走
#示例1
impoty asyncio
async def func():
print('test_1')
response = await asyncio.sleep(2)
return response
asyncio.run(func())
#示例2
async def others():
print('start')
await asyncio.sleep(2)
return 'others'
async def func():
print('执行协程函数内部代码')
# 遇到IO操作挂起当前协程(任务),等IO操作完成之后继续执行,当前协程挂起时,事件循环可以执行其他任务
response = await others()
print(response)
风月都好看,人间也浪漫.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)