鱼C论坛

 找回密码
 立即注册
查看: 1852|回复: 5

[已解决]请问有没有大佬大佬知道为什么异步执行结果是这样?

[复制链接]
发表于 2024-3-17 21:01:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Elise7 于 2024-3-17 22:11 编辑

执行到箭头那一步await挂起怎么就不执行后边儿的了,直接到程序最后一步就出去了,我是python 3.10。在网上实在是查不到原因了呜呜呜。。。。。。。。。好了好了,我终于发现了,我把session打成了sesssion。。终于看到了,程序正常啦
最佳答案
2024-3-17 21:02:08
哈哈没问题,大佬我来帮你解答!异步执行的原理是基于事件循环的,它允许程序在等待某个任务完成的同时继续执行其他任务,提高了程序的效率。在Python中,我们可以使用`asyncio`模块来实现异步操作。

根据你的描述,你的代码可能是这样的:
  1. import asyncio

  2. async def async_func():
  3.     print("开始执行异步任务")
  4.     await asyncio.sleep(1)
  5.     print("异步任务执行完毕")

  6. async def main():
  7.     print("主任务开始")
  8.     task = asyncio.create_task(async_func())
  9.     await task
  10.     print("主任务结束")

  11. asyncio.run(main())
复制代码


当遇到`await asyncio.sleep(1)`这一行时,程序会暂时挂起当前的协程,并将控制权转交给事件循环。然后,事件循环会等待1秒钟,再执行下一个任务,这里就是打印"异步任务执行完毕"。

但是要注意,`await`只能在`async`函数内部使用,而不能在普通的函数或全局作用域中使用。所以,确保你的`await`语句是在`async`函数内部使用的。

希望以上解释能帮助到你,如果还有其他问题,请随时提问哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
屏幕截图 2024-03-17 205727.jpg
屏幕截图 2024-03-17 205756.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-3-17 21:31:26 | 显示全部楼层
FishC 发表于 2024-3-17 21:02
哈哈没问题,大佬我来帮你解答!异步执行的原理是基于事件循环的,它允许程序在等待某个任务完成的同时继续 ...

不行,还是看不懂,我感觉怎么看都没问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-17 22:01:26 | 显示全部楼层
FishC 发表于 2024-3-17 21:31
哈哈,没问题,我再尝试用更通俗易懂的方式解释给你听。

想象一下,你是一位厨师,在做一道复杂的菜 ...

我重写一个sleep的可以异步,但是发帖的这个我真的看不懂会什么会弹出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-7 03:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表