位置: IT常识 - 正文

深究Python中的asyncio库-线程同步

编辑:rootadmin

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

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

前面的代码都是异步的,就如sleep,需要用asyncio.sleep而不是阻塞的time.sleep,如果有同步逻辑,怎么利用asyncio实现并发呢?答案是用run_in_executor。在一开始我说过开发者创建 Future 对象情况很少,主要是用run_in_executor,就是让同步函数在一个执行器( executor)里面运行。

深究Python中的asyncio库-线程同步

同步代码

defa():time.sleep(1)return'A'asyncdefb():awaitasyncio.sleep(1)return'B'defshow_perf(func):print('*'*20)start=time.perf_counter()asyncio.run(func())print(f'{func.__name__}Cost:{time.perf_counter()-start}')asyncdefc1():loop=asyncio.get_running_loop()awaitasyncio.gather(loop.run_in_executor(None,a),b())In:show_perf(c1)********************c1Cost:1.0027242230000866

可以看到用run_into_executor可以把同步函数逻辑转化成一个协程,且实现了并发。这里要注意细节,就是函数a是普通函数,不能写成协程,下面的定义是错误的,不能实现并发:

asyncdefa():time.sleep(1)return'A'

因为 a 里面没有异步代码,就不要用async def来定义。需要把这种逻辑用loop.run_in_executor封装到协程:

asyncdefc():loop=asyncio.get_running_loop()returnawaitloop.run_in_executor(None,a)

大家理解了吧?

loop.run_in_executor(None, a)这里面第一个参数是要传递concurrent.futures.Executor实例的,传递None会选择默认的executor:

In:loop._default_executorOut:<concurrent.futures.thread.ThreadPoolExecutorat0x112b60e80>

当然我们还可以用进程池,这次换个常用的文件读写例子,并且用:

asyncdefc3():loop=asyncio.get_running_loop()withconcurrent.futures.ProcessPoolExecutor()ase:print(awaitasyncio.gather(loop.run_in_executor(e,a),b()))In:show_perf(c3)********************['A','B']c3Cost:1.0218078890000015
本文链接地址:https://www.jiuchutong.com/zhishi/303151.html 转载请保留说明!

上一篇:python中series如何转为list?(python的series)

下一篇:vant 的表单校验(vant表单验证并提交表单)

  • SEO内容为王之怎样创造伪原创(seo内容建设)

    SEO内容为王之怎样创造伪原创(seo内容建设)

  • 华为手环7有nfc功能吗(华为手环7有nfc功能在哪里设置)

    华为手环7有nfc功能吗(华为手环7有nfc功能在哪里设置)

  • 华为p40是曲面屏手机的吗(华为p40是曲面屏还是瀑布屏)

    华为p40是曲面屏手机的吗(华为p40是曲面屏还是瀑布屏)

  • excel如何拆分单元格(excel如何拆分单元格分行)

    excel如何拆分单元格(excel如何拆分单元格分行)

  • 会声会影拖进去没声音(会声会影怎么拖动单个视频)

    会声会影拖进去没声音(会声会影怎么拖动单个视频)

  • 同一个手机号能解封几次(同一个手机号能注册几个抖音号)

    同一个手机号能解封几次(同一个手机号能注册几个抖音号)

  • airpods固件不更新(airpods固件不更新影响什么)

    airpods固件不更新(airpods固件不更新影响什么)

  • 加入购物车和立即购买有什么区别(加入购物车立即)

    加入购物车和立即购买有什么区别(加入购物车立即)

  • ios设备管理信任不见了(ios设备管理信任会有什么影响?)

    ios设备管理信任不见了(ios设备管理信任会有什么影响?)

  • 抖音直播不点进去对方知道吗(抖音直播不点进去看费流量吗)

    抖音直播不点进去对方知道吗(抖音直播不点进去看费流量吗)

  • mngq2ch/a是什么型号的苹果手机(mnfq2cha是什么型号)

    mngq2ch/a是什么型号的苹果手机(mnfq2cha是什么型号)

  • 苹果x的图片怎么设置壁纸(苹果x图片怎么提取文字)

    苹果x的图片怎么设置壁纸(苹果x图片怎么提取文字)

  • 华为手机手机设置不见了怎么办(华为手机手机设置找不到了)

    华为手机手机设置不见了怎么办(华为手机手机设置找不到了)

  • 朋友圈一定要发图片吗(朋友圈一定要发工作吗)

    朋友圈一定要发图片吗(朋友圈一定要发工作吗)

  • 实时到账能撤回吗(实时到帐能撤回吗?)

    实时到账能撤回吗(实时到帐能撤回吗?)

  • 华为nova是旗舰机吗(华为nova8se)

    华为nova是旗舰机吗(华为nova8se)

  • 有线wifi和无线wifi的区别(wifi和有线网络)

    有线wifi和无线wifi的区别(wifi和有线网络)

  • 为什么微信会自动收款(为什么微信会自动删除好友)

    为什么微信会自动收款(为什么微信会自动删除好友)

  • 微信解封上限5次怎么办(微信解封达到上限怎么办)

    微信解封上限5次怎么办(微信解封达到上限怎么办)

  • 抖音怎么看对方已读(抖音怎么看对方取关自己)

    抖音怎么看对方已读(抖音怎么看对方取关自己)

  • 手机qq音乐如何下歌词(手机qq音乐如何播放本地音乐播放器)

    手机qq音乐如何下歌词(手机qq音乐如何播放本地音乐播放器)

  • 怎么制作系统u盘win7(怎么制作系统镜像)

    怎么制作系统u盘win7(怎么制作系统镜像)

  • 如何修改唯品会登陆名(如何修改唯品会绑定的银行卡)

    如何修改唯品会登陆名(如何修改唯品会绑定的银行卡)

  • 泡泡视频微信在哪里找到(微信泡泡视频去哪了)

    泡泡视频微信在哪里找到(微信泡泡视频去哪了)

  • galaxy fold上市时间(三星fold1上市时间)

    galaxy fold上市时间(三星fold1上市时间)

  • 探探怎么加好友(探探怎么加好友通讯录)

    探探怎么加好友(探探怎么加好友通讯录)

  • 全民k歌怎么合唱邀请(全民k歌怎么合唱邀请好友一起唱)

    全民k歌怎么合唱邀请(全民k歌怎么合唱邀请好友一起唱)

  • 库乐队的红点怎么消除(库乐队红点怎么消)

    库乐队的红点怎么消除(库乐队红点怎么消)

  • 黄金海岸上的冲浪者,澳大利亚 (© Darren Tierney/Getty Images)(黄金海岸冲浪者沙滩)

    黄金海岸上的冲浪者,澳大利亚 (© Darren Tierney/Getty Images)(黄金海岸冲浪者沙滩)

  • 应纳税所得额高了好还是低了好
  • 对方公司已注销如何付款
  • 同级财政拨款的管理要求有哪些
  • 下列不属于流动资产的
  • 什么时候确认应收股利
  • 坏账计提坏账准备
  • 有形动产租赁服务计入什么科目
  • 开具了红字发票信息表的税额需要转出吗
  • 会计和税法折旧年限不同如何计算终结期现金净流量
  • 营改增后销售租赁后的设备如何做税务处理?
  • 自产产品用于捐赠的会计处理
  • 纳税申报表多缴了怎么办
  • 用于研发的设备会计分录
  • 股权转让时资本怎么算
  • 董事费条款
  • 10个点的发票税点开6个点专票
  • 个人开增值税普票有没有限额
  • 申报开票是什么意思
  • 出口退税银行账户备案
  • 附加税减半征收计提和缴纳的会计分录
  • 税金及附加是否设二级科目
  • 公司招投标卖标书的收入款财务作什么科目?
  • 有未分配利润就有盈余返还吗?
  • 委托加工物资什么意思
  • 消费税应纳税额计算方法是什么有何特点
  • 租房税收缴款书在哪里打印
  • 工业企业预付材料款时一般应借记什么账户
  • mac版字体怎么安装
  • 汽车修理公司的成本怎么核算
  • vue设置时间格式
  • 装饰工程施工包括什么
  • 化妆品与药品
  • 伊莎贝尔公主
  • 机动车退货的法律规定
  • 长期股权投资投资收益计算
  • 基于强化学习的智能机器人路径规划算法研究(附代码)
  • 最详细、最完整的相机标定讲解
  • websocket tcpsocket
  • vue有哪些内容
  • etc充值卡发票可以入账吗
  • 小规模所得税申报表利润总额是填季报吗
  • 信用证支付方式,银行处理单据时主要关注( )
  • 应交税费未交增值税
  • 物业监控安装地点要求
  • mongodb数据库是哪个公司的
  • 博客首页设计
  • 租车出差差旅费标准
  • 床垫发票
  • 固定资产清理怎么做账务处理
  • 税控服务费减免会计分录
  • 增值税现代服务业包括哪些内容
  • MySQL Replace INTO的使用
  • 避税的形式
  • 小型微利企业企业所得税如何计算
  • 简易办法征收增值税是什么意思
  • 出口佣金账务处理
  • 公司的现金收入存到个人账户在转到公司指定的私人账户
  • 在建工程的人工费进行了全员申报后,清算时怎么处理?
  • 总公司可以给子公司开票吗
  • 企业发生亏损,可在( )年内连续弥补
  • 递延所得税资产和递延所得税负债
  • 待处理财产损益是备抵类科目吗
  • 公司购买垃圾袋纸巾摘要怎么写好
  • 高新企业研发项目规定几个
  • 营业外支出有哪些费用
  • windows xp 任务栏在右边
  • windowsxp如何隐藏文件
  • win1020h2版本千万别更新
  • WIN7系统如何恢复出厂系统
  • linux系统的内存分配和回收采用什么算法?
  • 安卓飞行手游
  • opengl自学
  • 文件上传的三个条件
  • 常见的dos命令及功能
  • jquery实现移动端
  • jQuery Ajax传值到Servlet出现乱码问题的解决方法
  • python代码规范化
  • 湖南电子税务局密码错误5次
  • 纳税申报的期限是多少年
  • 核定征收一般纳税人
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设