当前位置: 首页 > 图灵资讯 > 行业资讯> Python异步中loop抛出异常的解决

Python异步中loop抛出异常的解决

发布时间:2024-08-27 13:41:06

1、问题分析

第二次使用loop时,程序会抛出异常RuntimeErororor: Event loop is closed,这是可以理解的,理想的程序也应该在一个时间循环中解决各种异步IO的问题。但是,在IPython等终端环境中,每次练习Python的异步程序编写都太麻烦了。

2、解决

使用asyncio.new_event_loop函数建立一个新的事件循环,并使用asyncio.set_event_loop设置全局事件循环,可以多次运行异步事件循环,但最好保存默认的asyncio.get_event_loop并在事件循环结束时恢复。最后,我们的代码是这样的。

importasyncio
asyncdefdoAsync():
awaitasyncio.sleep(0)
#...
defrunEventLoop()
loop=asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(doAsync())
loop.close()
if__name__=="__main__":
oldloop=asyncio.get_event_loop()
runEventLoop()
runEventLoop()
asyncio.set_event_loop(oldloop)

以上是Python异步中loop抛出异常解决方案,希望对大家有所帮助。更多Python学习指导:python基础教程

本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。

相关文章

如何让vim支持python3

如何让vim支持python3

2025-09-12
python2.7和3.6区别有哪些

python2.7和3.6区别有哪些

2025-09-12
python3有serial库吗

python3有serial库吗

2025-09-12
python中w、r表示什么意思

python中w、r表示什么意思

2025-09-12
python中如何把list变成字符串

python中如何把list变成字符串

2025-09-12
python命名空间是什么

python命名空间是什么

2025-09-12