全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

在Python的一段程序中如何使用多次事件循环详解

背景

本文主要给大家介绍了关于在Python一段程序中使用多次事件循环的相关内容,我们在Python异步程序编写中经常要用到如下的结构

import asyncio
async def doAsync():
 await asyncio.sleep(0)
 #...
if __name__ == "__main__":
 loop = asyncio.get_event_loop()
 loop.run_until_complete(doAsync())
 loop.close()

这当然是很不错的,但当你第二次使用loop的时候程序就会抛出异常RuntimeError: Event loop is closed,这也无可厚非,理想的程序也应该是在一个时间循环中解决掉各种异步IO的问题。

但放在终端环境如Ipython中,如果想要练习Python的异步程序的编写的话每次都要重新开启终端未免太过于麻烦,这时候要探寻有没有更好的解决方案。

解决方案

我们可以使用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)

感想

事件循环本来就是要一起做很多事情,在正式的Python代码中还是只用一个默认的事件循环比较好,平时的学习练习的话倒是随意了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# python  # 事件循环  # 循环  # python循环语句  # 简单理解Python中的事件循环EventLoop  # python Tornado事件循环示例源码解析  # Python 异步之如何启动获取事件循环  # python html2text库将HTML文档转换为纯文本格式使用示例探索  # python Prophet时间序列预测工具库使用功能探索  # Python flashtext文本搜索和替换操作库功能使用探索  # python ftfy库处理金融方面文件编码错误实例详解  # python uvloop事件循环库使用功能示例探究  # 这时候  # 就会  # 放在  # 相关内容  # 就像  # 都要  # 当你  # 并在  # 这也  # 给大家  # 要用  # 比较好  # 很不错  # 可以使用  # 无可厚非  # 这篇文章  # 谢谢大家  # 建立一个  # 本来就是  # 也应 


相关文章: 如何正确选择百度移动适配建站域名?  如何确保FTP站点访问权限与数据传输安全?  如何挑选最适合建站的高性能VPS主机?  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  黑客入侵网站服务器的常见手法有哪些?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  *服务器网站为何频现安全漏洞?  清除minerd进程的简单方法  北京专业网站制作设计师招聘,北京白云观官方网站?  微课制作网站有哪些,微课网怎么进?  如何快速搭建个人网站并优化SEO?  学校为何禁止电信移动建设网站?  建站之星3.0如何解决常见操作问题?  再谈Python中的字符串与字符编码(推荐)  零服务器AI建站解决方案:快速部署与云端平台低成本实践  建站主机选择指南:服务器配置与SEO优化实战技巧  建站主机助手选型指南:2025年热门推荐与高效部署技巧  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  建站之星下载版如何获取与安装?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  php json中文编码为null的解决办法  临沂网站制作公司有哪些,临沂第四中学官网?  如何有效防御Web建站篡改攻击?  建站之星后台管理系统如何操作?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  中山网站推广排名,中山信息港登录入口?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  如何在Windows虚拟主机上快速搭建网站?  Android自定义listview布局实现上拉加载下拉刷新功能  建站之星客服服务时间及联系方式如何?  临沂网站制作企业,临沂第三中学官方网站?  兔展官网 在线制作,怎样制作微信请帖?  电商平台网站制作流程,电商网站如何制作?  建站之星安装后如何自定义网站颜色与字体?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  黑客如何通过漏洞一步步攻陷网站服务器?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  实惠建站价格推荐:2025年高性价比自助建站套餐解析  html制作网站的步骤有哪些,iapp如何添加网页?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  制作宣传网站的软件,小红书可以宣传网站吗?  如何基于云服务器快速搭建网站及云盘系统?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。