位置: IT常识 - 正文

深究Python中的asyncio库-线程池

编辑:rootadmin

推荐整理分享深究Python中的asyncio库-线程池,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在同步线程中使用的run_in_executor就如它方法的名字所示,把协程放到了一个执行器里面,可以在一个线程池,也可以在一个进程池。另外还可以使用run_coroutine_threadsafe在其他线程执行协程(这是线程安全的)。

多线程

defstart_loop(loop):asyncio.set_event_loop(loop)loop.run_forever()defshutdown(loop):loop.stop()asyncdefb1():new_loop=asyncio.new_event_loop()t=Thread(target=start_loop,args=(new_loop,))t.start()future=asyncio.run_coroutine_threadsafe(a(),new_loop)print(future)print(f'Result:{future.result(timeout=2)}')new_loop.call_soon_threadsafe(partial(shutdown,new_loop))In:awaitb1()<Futureat0x107edf4e0state=pending>Result:A深究Python中的asyncio库-线程池

这里面有几个细节要注意:

协程应该从另一个线程中调用,而非事件循环运行所在线程,所以用asyncio.new_event_loop()新建一个事件循环

在执行协程前要确保新创建的事件循环是运行着的,所以需要用start_loop之类的方式启动循环

接着就可以用asyncio.run_coroutine_threadsafe执行协程a了,它返回了一个Future对象

可以通过输出感受到future一开始是pending的,因为协程a里面会sleep 1秒才返回结果

用future.result(timeout=2)就可以获得结果,设置timeout的值要大于a协程执行时间,要不然会抛出TimeoutError

一开始我们创建的新的事件循环跑在一个线程里面,由于loop.run_forever会阻塞程序关闭,所以需要结束时杀掉线程,所以用call_soon_threadsafe回调函数shutdown去停止事件循环

本文链接地址:https://www.jiuchutong.com/zhishi/303139.html 转载请保留说明!

上一篇:帝国cms怎么备份(帝国cms怎么上传图片)

下一篇:使用FileZilla服务器FTP工具快速找回忘记的服务器密码傻瓜试教程-OK教程(filezilla使用手册)

  • 增值税专票和普票的区别税率
  • 公司出租房营业税税率是多少
  • 资产负债表中的固定资产是原值还是净值
  • 可以直接申请一般纳税人吗
  • 发票领购簿长什么样
  • 小规模纳税人进项发票怎么做账
  • 个人所得税办理退税需要什么资料和手续
  • 退休工资的个人账户怎么算
  • 个体工商户申报年报
  • 投资性房地产租赁期开始日
  • 计提未发放的工资是否交个税
  • 企业自查补税报告怎么写?
  • 油品沥青消费税征收范围
  • 印花税新法
  • 转让非独占许可使用权调整
  • 联营与参股公司的关系
  • 金税盘不交年费可以正常使用吗
  • 长期待摊费用当月减少当月摊销吗
  • 航天信息服务费280元会计处理
  • 跨地区经营汇总纳税企业所得税
  • 投资电影分红款如何开具发票?
  • 无生产怎样结转成本费用
  • 数字权利服务如何打开
  • 注册表怎么启动
  • 购买电脑应该怎么做账
  • php防止再次刷新
  • linux设置权限规则
  • 对公转账存款
  • 解聘员工补偿金能拖欠吗
  • JS之location对象详解
  • php一个文件搞定两个文件
  • echarts api文档
  • php中array用法
  • 交互式命令操作
  • 利润表的格式分为哪几种
  • 什么是进项税转出成本
  • 公司收到银行存款利息回单的会计分录
  • 织梦模板转讯睿模板
  • 增值税小规模纳税人减免增值税政策
  • centos7.3安装
  • 一般纳税人混凝土税率
  • sql server 使用
  • 收到以前年度银行手续费发票分录
  • 应付账款借方如何重分类会计科目
  • 季度报税都是几月份
  • 小规模纳税人的税率是多少
  • 暂估入库的商品怎么做账
  • 递延所得税如何计提
  • 普通发票可以改日期吗怎么改
  • 开公司的车出差违章算谁的
  • 员工工伤申请流程
  • 营业税金及附加包括哪些
  • 施工企业如何确定收入和成本
  • 已入库的原材料会计分录
  • 服务行业进项税额加计扣除
  • sqlserver中delete、update中使用表别名和oracle的区别
  • mysql8.0二进制安装
  • mac如何设置启动系统
  • winxp回收站在哪里
  • ha1.dll丢失开不了机
  • win7精简版安装net4.0
  • linux系统内核的功能
  • centos怎么样
  • linux配置ssh
  • xp装windows7
  • cortana可以用于搜索本机文件吗
  • windows7开机磁盘检查怎么取消
  • bat批处理视频教程
  • javascript例题
  • unity 摄像机
  • 网页编辑器手机版
  • shell for遍历
  • nodejs基础教程
  • jquery fullpage
  • 深圳如何打印个人参保证明
  • 国家税务总局好进吗
  • 增值税申报表如何更正
  • 土地流转需要什么材料
  • 公安驻税务联络办公室
  • 禅城有什么小孩好玩的地方
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设