千锋教育-做有情怀、有良心、有品质的职业教育机构

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

来源:千锋教育
发布时间:2023-11-14 03:04:19
分享

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

1、问题分析

第二次使用loop的时候程序就会抛出异常RuntimeError:Eventloopisclosed,这也无可厚非,理想的程序也应该是在一个时间循环中解决掉各种异步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学习教程请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • pythonstr是什么意思 python中的str是什么意思1、说明Python中包含字符串,字符串的类型为str。str函数是Python的内置函数,它将参数转换成字符串类型,即人适合阅读的形式。2、语法str(object)
  • python人工智能python是什么 人工智能python是什么1、说明Python是一种最适合人工智能的编程语言。由于使用简单,成为了人工智能领域应用最广泛的编程语言之一,它可以与数据结构和其他常用的AI算法无缝结合。机器学习属于人工智
  • pythonPyramid框架是什么? python中Pyramid框架是什么?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、说明Pyramid以其高效率和快节奏的开发能力而出名。Pyramid应用程
  • python进程之间如何通信 python进程之间如何通信本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、思路Process之间肯定是需要通信的,操作系统提供了很多机制来实现进程间的通信。Py
  • pythonint是什么意思 python中的int是什么意思1、说明作为函数用于将一个字符串或数字转换为整型。int在python里是一个类,它是不可变数据类型中的一种,它的一些性质和字符串是一样的,是整型。2、语法classi
  • python开发环境是什么 python开发环境是什么1、说明IDE,全称是IntegratedDevelopmentEnvironment,即集成开发环境,这是一种具有图形用户界面的,集代码的编写、编译或解释、调试、程序性能监