位置: 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使用手册)

  • 单独确认进项税额的情形
  • 实际发生的坏账准备可以税前扣除吗
  • 税控盘的功能特点是
  • 税务师事务所是代理记账公司吗
  • 增值税发票抵扣是什么意思
  • 个人社保部分公司承担可以入费用吗
  • 工程附加税怎么计算
  • 开了农民工资金专户必须使用吗
  • 非盈利组织收到投资款如何做账
  • 季度不超过9万
  • 建筑安装专票票样
  • 管理费用已付款未收到发票
  • 分公司亏损总公司账务处理
  • 固定资产抵扣税金算增值税吗怎么算
  • 增值税普通发票税率
  • 浅析税收滞纳金问题的政策法规
  • 单位租房水电费是个人名字是否可以抵扣
  • 销售方开的普票税额怎么处理
  • 个人所得税征收标准2023
  • 去年盈利今年亏损怎么表达
  • 房产税先征后免会计处理
  • 会计计提和冲回
  • 签发空头支票的赔偿金
  • 营业外收支计入应纳税所得额吗
  • 工会年度收入支出表
  • 如何关闭win10自带杀毒软件
  • linux系统中如何查看日志
  • w10系统有线连接网络
  • 会计凭证应该怎么写
  • 处置子公司的收益
  • 涉税服务实务重点总结
  • 工程建设质保金规定
  • 安博塞利国家公园简介
  • 增值税免税申报
  • 小微企业能申请留抵退税吗?
  • 取得了水电费发票怎么做
  • 新公司不开户需要交税吗
  • python中的threading模块
  • 生产车间发放工资
  • 固定资产原值和净值在报表哪里看
  • 科技局创业扶持资金
  • 百旺金赋服务费不交会怎么样?
  • 生产企业一般贸易出口退税流程解析
  • 个体工商户怎么变更法人
  • 走账犯罪吗
  • 季度预缴企业所得税要交滞纳金吗
  • 提前送了礼物还要发红包吗
  • 销售货物收到托运怎么办
  • 应交增值税结转凭证
  • 收到保险公司赔款
  • 职工困难补助账务处理
  • 苗木种植发票免税怎么开
  • 房地产开发企业销售自行开发的房地产项目
  • win10怎么设置加快电脑速度
  • centos6.6网卡配置
  • win10老是弹窗广告
  • centos7查看性能监控
  • 开机停在american megatrends
  • windows8.1备份
  • 潘 pan
  • win7怎么保留文件升级到win10系统
  • win10系统无法开机
  • win10系统经常弹出广告页面怎么解决
  • win7系统的桌面图标怎么调出来
  • 使用灭火器人要站在上风口还是下风口
  • javascript ?
  • nodejs 代码加密
  • python数据验证
  • Python类的继承动物类
  • 基于单片机的毕业设计题目
  • 3种不同的播种方法
  • 一个治疗Unity的Prefab强迫症患者的小招(Prefab变成红色的问题)
  • ListView.setOnItemClickListener不起作用的原因
  • javascript工作
  • JavaScript中的变量名不区分大小写
  • 国家税务总局61号
  • 苏州税务局发票查询系统
  • 纳税人逾期未申报的原因有哪些
  • 小规模纳税人需要进项票吗
  • 手表关税税率一般是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设