导语:
本文主要介绍了关于Python异步中loop抛出异常的解决的相关知识,包括抛出异常的程序代码可以是,以及声明异常和抛出异常的区别这些编程知识,希望对大家有参考作用。
1、问题分析
第二次使用循环时,程序会抛出异常RuntimeError: Event loop is closed,这是可以理解的。理想的程序还应该在一个时间循环中解决各种异步IO问题。但是在Ipython这样的终端环境下,如果想练习写Python异步程序,每次都要重启终端太麻烦了。
2、解决
使用asyncio.new_event_loop函数新建一个事件循环,使用asyncio.set_event_loop设置全局事件循环,这样可以多次运行异步事件循环,但是最好保存默认的asyncio.get_event_loop并在事件循环结束返回。最后我们的代码看起来像这样。
import asyncio
async def doAsync():
await asyncio.sleep(0)
#...
def runEventLoop()
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)
以上就是Pyth
on异步中loop抛出异常的解决,希望能对大家有所帮助。
更多Python学习指路:
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
内容反馈