位置: 编程技术 - 正文

如何在Python中编写并发程序(python编写代码的步骤)

编辑:rootadmin

推荐整理分享如何在Python中编写并发程序(python编写代码的步骤),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python怎么编,如何在Python中编写斐波那契函数,python怎么编,如何在Python中编写斐波那契函数,如何在python中编写就餐人数,如何在Python中编写一个能对凯撒密码执行解密的小程序,如何在python中编辑图案,如何在Python中编写一个能对凯撒密码执行解密的小程序,内容如对您有帮助,希望把文章链接给更多的朋友!

GIL

在Python中,由于历史原因(GIL),使得Python中多线程的效果非常不理想.GIL使得任何时刻Python只能利用一个CPU核,并且它的调度算法简单粗暴:多线程中,让每个线程运行一段时间t,然后强行挂起该线程,继而去运行其他线程,如此周而复始,直到所有线程结束.

这使得无法有效利用计算机系统中的"局部性",频繁的线程切换也对缓存不是很友好,造成资源的浪费.

据说Python官方曾经实现了一个去除GIL的Python解释器,但是其效果还不如有GIL的解释器,遂放弃.后来Python官方推出了"利用多进程替代多线程"的方案,在Python3中也有concurrent.futures这样的包,让我们的程序编写可以做到"简单和性能兼得".

多进程/多线程+Queue

一般来说,在Python中编写并发程序的经验是:计算密集型任务使用多进程,IO密集型任务使用多进程或者多线程.另外,因为涉及到资源共享,所以需要同步锁等一系列麻烦的步骤,代码编写不直观.另外一种好的思路是利用多进程/多线程+Queue的方法,可以避免加锁这样麻烦低效的方式.

如何在Python中编写并发程序(python编写代码的步骤)

现在在Python2中利用Queue+多进程的方法来处理一个IO密集型任务.

假设现在需要下载多个网页内容并进行解析,单进程的方式效率很低,所以使用多进程/多线程势在必行.我们可以先初始化一个tasks队列,里面将要存储的是一系列dest_url,同时开启4个进程向tasks中取任务然后执行,处理结果存储在一个results队列中,最后对results中的结果进行解析.最后关闭两个队列.

下面是一些主要的逻辑代码.

利用Python3中的concurrent.futures包

在Python3中可以利用concurrent.futures包,编写更加简单易用的多线程/多进程代码.其使用感觉和Java的concurrent框架很相似(借鉴&#;)比如下面的简单代码示例

总结

要是一些大型Python项目也这般编写,那么效率也太低了.在Python中有许多已有的框架使用,使用它们起来更加高效.但是自己的一些"小打小闹"的程序这样来编写还是不错的.:)

Python实现简单多线程任务队列 最近我在用梯度下降算法绘制神经网络的数据时,遇到了一些算法性能的问题。梯度下降算法的代码如下(伪代码):defgradient_descent():#thegradientdescentcod

python的else子句使用指南 在日常coding中,分支语句的使用非常普遍,经常会根据是否满足一定的条件对代码执行的逻辑进行一些控制,所以大家对if[elif[else]]一定不会陌生。分支

python结合shell查询google关键词排名的实现代码 最近老婆大人的公司给老婆大人安排了一个根据关键词查询google网站排名的差事。老婆大人的公司是做seo的,查询的关键词及网站特别的多,看着老婆

标签: python编写代码的步骤

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

上一篇:Python 多线程抓取图片效率对比(python多线程操作)

下一篇:Python实现简单多线程任务队列(python简单gui)

  • 海关进口增值税专用缴款书图片
  • 计提税额与实缴税额的区别是什么?
  • 计提企业所得税会计科目
  • 代开专票上的税额比电子缴款凭证上的税额少怎么调整
  • 专票打印偏下可以用吗
  • 公司成立前发生业务 成立后开票
  • 小规模季度30万免税
  • 租赁企业可以开具电费发票吗
  • 小微企业的企业所得税税收优惠政策
  • 手工发票可以抵增值税吗
  • 购买空调算什么费用
  • 应缴所得税包括哪些税种
  • 现金支票存根如何填写
  • 雇主责任险保费计算公式
  • 定额发票领用日期
  • 水利基金减免政策2022
  • 小规模纳税人附表一怎么填
  • 金税四期什么时候结束
  • 员工服装属于什么费用类型
  • 企业大中小型划分最新标准
  • 财务软件没有税务登记
  • 无形资产软件摊销年限是多少
  • 非居民纳税人享受协定待遇办理方式
  • 上年计提的费用往来,能冲回吗
  • win10隐藏功能大全
  • linux怎么改桌面背景
  • 什么是会计科目?为什么要设置会计科目?
  • 公司出售车辆
  • bootcamp怎么直接安装
  • 财务冲抵如何处理
  • 商会收到的会费要交企业所得税
  • linux管理员账户名
  • win10升级win11报错
  • 补提去年的所得税费用是怎么做分录?
  • 购入旧的固定资产的入账价值
  • 关联企业拆借资金的税务处理
  • 特许权使用费的增值税税率是多少
  • 应交税费会计分录例题
  • 当年盈余资金计算公式
  • 盈余公积金可以用来扩大公司生产经营
  • 出口免抵增值税是什么意思
  • react 路由参数
  • php+jquery+html实现点击不刷新加载更多的实例代码
  • 合伙企业能享受所得税减半征收
  • mysql数据库外键约束怎么写
  • 计提工资后面附什么
  • 商品进销差价在借方还是贷方
  • 经营租入的设备属于什么会计要素
  • 去参加博览会的英文
  • 长期股权投资成本法会计处理
  • 收入总额是什么意思
  • sql server恢复
  • 注册资本在十年后怎么办
  • 甲供材料怎么记账
  • 资本公积溢价转增
  • 销售折扣销售方会计处理
  • 商业承兑到期对方不付款会计分录
  • 其他综合收益转出
  • 开公司如何选择行业
  • 应交税费会计分录实例分析
  • sql server如何查询
  • 快速删除指定位置的结点用单链表还是双链表
  • xp系统如何做
  • mac怎么快速上手
  • centos6.5升级到7.5
  • windows8有几个模式
  • win10系统最新更新
  • 如何写出一篇游戏活动案例
  • ajax 编码
  • android studio ndk开发教程
  • unity碰撞得分代码
  • 文章标题作用答题模板
  • nodejs 写文件
  • 如何在android studio中导入其他包
  • 谈谈我对视觉传达的认识
  • 税务部门督查内审部门监督检查的内容
  • 常规巡察和专项巡察相结合
  • 国家税务总局网站官网浙江
  • 医保漏缴如何补交
  • 国税发票如何查询真伪
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设