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

  • 微信注册账号安全校验为什么通过不了(微信注册账号安全验证怎么过)

    微信注册账号安全校验为什么通过不了(微信注册账号安全验证怎么过)

  • 快手小店保证金退了还可以再交吗(快手小店保证金是干嘛的)

    快手小店保证金退了还可以再交吗(快手小店保证金是干嘛的)

  • 微信昵称特殊符号怎么保存不了(微信昵称特殊符号叶子)

    微信昵称特殊符号怎么保存不了(微信昵称特殊符号叶子)

  • 微信什么时候可以改第二次微信号(微信什么时候可以转账)

    微信什么时候可以改第二次微信号(微信什么时候可以转账)

  • 微信怎么改深色模式(微信怎么改深色模式vivoy66)

    微信怎么改深色模式(微信怎么改深色模式vivoy66)

  • 帧速率是不是越高越好(帧速率是不是越低越好)

    帧速率是不是越高越好(帧速率是不是越低越好)

  • p40pro是什么屏幕(p40pro是什么屏幕瀑布吗)

    p40pro是什么屏幕(p40pro是什么屏幕瀑布吗)

  • 天猫极速退款额度在哪里看(天猫已经极速退款了还能撤销退款申请吗)

    天猫极速退款额度在哪里看(天猫已经极速退款了还能撤销退款申请吗)

  • 华为m6可以用鼠标吗(华为m6电脑模式可以用鼠标吗)

    华为m6可以用鼠标吗(华为m6电脑模式可以用鼠标吗)

  • 苹果手机屏幕是多少k(苹果手机屏幕是2K吗)

    苹果手机屏幕是多少k(苹果手机屏幕是2K吗)

  • 手机ip地址多久变一次(手机ip地址准吗)

    手机ip地址多久变一次(手机ip地址准吗)

  • 微信收款限制怎么解除(微信收款限制怎么人脸识别)

    微信收款限制怎么解除(微信收款限制怎么人脸识别)

  • wps脚注20以后加圈(wps脚注格式怎么设置成自己想要的符号)

    wps脚注20以后加圈(wps脚注格式怎么设置成自己想要的符号)

  • 红魔手机哪个公司的(红魔手机哪个公司生产的)

    红魔手机哪个公司的(红魔手机哪个公司生产的)

  • 蜂窝移动数据限制在哪(蜂窝移动数据1x)

    蜂窝移动数据限制在哪(蜂窝移动数据1x)

  • 快手通讯录好友指的是(快手通讯录好友对方有我电话吗)

    快手通讯录好友指的是(快手通讯录好友对方有我电话吗)

  • 苹果id创建不了怎么办(苹果id创建不了游戏账号是什么问题)

    苹果id创建不了怎么办(苹果id创建不了游戏账号是什么问题)

  • 抖音磨砂滤镜怎么弄(抖音里磨砂效果在哪)

    抖音磨砂滤镜怎么弄(抖音里磨砂效果在哪)

  • 全网通无卡版是什么意思(全网通不插卡可以用吗)

    全网通无卡版是什么意思(全网通不插卡可以用吗)

  • airpods无线充电盒和充电盒的区别(airpods无线充电盒怎么充电)

    airpods无线充电盒和充电盒的区别(airpods无线充电盒怎么充电)

  • Win11文件资源管理器总是崩溃怎么办? Win11资源管理器崩溃的原因(Win11文件资源管理器将更新)

    Win11文件资源管理器总是崩溃怎么办? Win11资源管理器崩溃的原因(Win11文件资源管理器将更新)

  • 重装系统后软件如何恢复(重装系统后软件打不开)

    重装系统后软件如何恢复(重装系统后软件打不开)

  • @Nullable 注解的详细用法(nullable object must have a value)

    @Nullable 注解的详细用法(nullable object must have a value)

  • 一般纳税人每个月需要报哪些税
  • 北京增值税发票网上申领流程
  • 公司房屋修缮账务流程
  • 递延所得税资产计算公式
  • 国内旅客运输服务电子普通发票
  • 税务局不给注销税务
  • 计提的工会经费怎么做账
  • 计提摊销房租会计分录
  • 事业单位库存现金
  • 税收滞纳金算不算所得税
  • 季度报税每个月还用计提吗
  • 不动产发票如何开具
  • 有线电视基本收视维护费免征增值税
  • 企业所得税是按季度还是按月
  • 在公司发现问题该说吗
  • 损益类科目包括收入类和费用类么
  • 转口贸易是否缴增值税
  • 进项税额加计抵减如何申报
  • 企业押金怎么管理
  • 多转出的进项税怎么做账
  • win10运行红色警戒2卡顿
  • 洗牙的利和弊
  • RPDFLchr.exe - RPDFLchr是什么进程 有什么用
  • 现在我们来看看windows中的新增内容
  • imac 5k屏幕参数
  • 公账如何存钱
  • 招待费报账怎么查
  • PHP:zip_entry_read()的用法_Zip函数
  • php timeout
  • 二连浩特老照片
  • php如何调用function
  • 解决前端跨域问题
  • vue父子组件生命周期钩子执行顺序
  • 获取企业微信用户身份信息授权失败
  • 接受捐赠收入要交企业所得税吗
  • 什么是汇算清缴申报表
  • 增值税认证清单路径
  • 公司租赁员工的房屋
  • 上年所得税费用借方有余额,怎么调整
  • 在dedecms中,如何模板建站
  • nosql manager for mongodb
  • 小规模纳税企业销售货物或者提供应税劳务
  • 小规模纳税人现代服务税率
  • 使用sql server查询不到会返回什么
  • 本年利润借方余额是什么意思呢
  • 车辆保险费如何缴纳印花税的
  • 什么是保函保证金
  • 企业银行贷款保证金多少
  • 企业购进的固定资产
  • 费用报销的凭证是什么
  • 固定资产折旧方法不考虑净残值
  • 会计估计变动怎么处理
  • 库存现金的主要内容有哪些
  • 总公司中标分公司结算可以吗
  • 关于文化事业建设费的说法错误的是
  • 建账在哪里完成
  • 餐饮行业月末结转成本怎么算
  • 加盟费交税
  • mysql 绿色
  • 创建的sql语句
  • 双启动子存在的意义
  • centos如何删除用户组里面的用户
  • win8开始在哪里
  • win7系统连接wifi无法连接到internet
  • centos如何配置ip
  • chkdsk命令有什么用
  • win7系统打不开设备与打印机
  • android开发地图应用
  • url跟uri
  • node.js deno
  • pycharm怎么学
  • javascriptcsdn
  • js修改地址栏参数但不让他跳转
  • android基础入门教程
  • Android include 标签注意点
  • New AssetBundle build system in Unity 5.0
  • substrate框架原理
  • 浙江市税务局怎么进
  • 农产品进项税额核定扣除
  • 一般纳税人做账收费标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设