位置: 编程技术 - 正文

如何在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)

  • 企业所得税年度汇算清缴时间
  • 2023增值税最新税率
  • 事业单位有那种
  • 个体户的附加税表怎么填写
  • 生产型企业直接进口产品是否可直接出口
  • 行政事业单位预算管理制度
  • 存货的领用
  • 房产税存在往期滞纳金吗
  • 外购商品用于赠送分录
  • 企业资产损失所得税税前扣除办法
  • 赠与合同收税吗
  • 无形资产应当按照公允价值进行初始计量吗
  • 小规模纳税人销售不动产适用税率
  • 法人转钱到公户是借款还是投资款
  • 增值税普通发票查询真伪
  • 打印机的增值税率
  • 营改增试点实施办法的法律层次是
  • 餐饮发票增值税税率是多少
  • 餐饮发票一千多钱税
  • 哪些情形可以补胎
  • 公司给个人买的意外险个人有权利查吗
  • 拍卖所得房产计税依据
  • 购货方收到代垫运费的发票怎么做会计分录?
  • 出租柜台收取的服务费
  • 举办活动 举行活动
  • 非常损失计入
  • 铡什么意思
  • mac os常用快捷键
  • 苹果手机录音转mp3怎么转
  • 支付公司保洁费未开发票
  • 增值税价外费用是什么意思
  • 增值税发票半年后能冲红
  • 增值税有哪些类型的税种
  • 英国布莱顿霍夫怎么样
  • framework core
  • 企业的生产环节
  • codeignitor
  • php curl_init
  • phpcms视频教程
  • 内账增值税计入什么科目
  • 劳务人员劳务费走薪资还是走报销
  • 在建工程可以核酸无形资产
  • phpcms v9安装教程
  • 一张记账凭证写不下时合计怎么写
  • 信息采集是哪个部门负责
  • sql server 内存管理
  • 一次还本付息债券定价公式
  • 通过法院拍卖取得的房屋需要法院下确认裁定吗
  • 金税四期介绍 王军
  • 本年利润和利润分配有什么区别
  • 公司购买不动产契税税率
  • 非预算类专用账户
  • 行政单位现金管理
  • 定期定额户超过9万如何交个税
  • etc的充值发票可以报账吗
  • 直接人工标准工时计算公式
  • 库存商品主要包括
  • 建筑企业总公司施工可否由分公司开发票
  • 公司固定资产有很多种类,怎样计提折旧
  • win8系统如何安装软件
  • win7桌面图标无法拖到任务栏
  • Linux系统用命令进行盘数据往外读不可
  • win10预览版和正式版
  • windows7怎么打开记事本
  • win10的用户
  • win7电脑关机后自动开机怎么回事
  • android知识
  • python利用for循环求1到100的和
  • unity3d怎么查看
  • oracle批处理语句
  • unity控制相机旋转
  • pyqt5编译
  • jquery轮播图代码
  • jquery获取当前点击的元素
  • 增值税纳税申报表附列资料(三)
  • 个人所得税超过12万能退税吗
  • 税源管理科是干什么的工作
  • 安置房公摊面积多少属于正常范围
  • 国家税务总局发票下载
  • 电子客票号码8768是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设