位置: 编程技术 - 正文

如何在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
  • 库存占销售的多少合适
  • 公司拨付工会经费怎么算的
  • 公司缴纳社保部分从个人扣除 犯法吗
  • 增值税暂行条例属于
  • 社保和医保是分开到账吗
  • 工商营业年报怎么做
  • 企业汇算清缴后还能更正吗
  • 原材料计入什么账本
  • 各部门领料情况,a产品耗用甲材料3200元
  • 流动资产固定资产和无形资产都是资产类账户
  • 金税盘申请电子发票成功后怎样手工导入
  • 中介公司收取中介费过高违法吗
  • 员工两处取得的荣誉
  • 房地产企业前期工程费包括什么项目
  • 增值税专用发票怎么开
  • 预付货款账务处理会计分录
  • php错误和异常
  • php数据统计分析
  • ai生成图形
  • php web socket
  • mac apache php
  • 报销人和收款人不一致
  • 无形资产法
  • 免税农业企业所得税怎样填报
  • 应计入财务费用的科目是
  • 周转材料二级科目有哪些
  • python中input转换
  • 职工福利费开支超过准予扣除标准的金额为1.2
  • 不征税发票需要申请吗
  • 增值税防伪税控系统
  • 收到一张普通发票怎么做账
  • 处置固定资产净收益属于利得吗
  • 应交销项税转出分录
  • 税务局退回水利基金账务怎么处理
  • 汽车租赁的会计处理
  • 公司购买车
  • 实收资本增加印花税税目怎么填
  • 个体户开广告发票需要交税吗
  • 期末存货采用成本与什么孰低法计价
  • 个人报销费用怎么做分录
  • 哪些税费计入税金及附加科目
  • 在docker中使用service命令
  • sql语句查询记录
  • mysql 存储过程存放在哪里
  • Mysql5.7在Centos6中的安装方法
  • 注册表隐藏桌面图标
  • 高端电脑品牌
  • mac怎么安装新系统
  • 苹果电脑支付在哪里设置
  • win8设置在哪
  • python计算ndvi
  • ext combox 下拉框不出现自动提示,自动选中的解决方法
  • 如何执行perl脚本
  • java dao框架
  • jquery easy ui
  • Shell、Perl、Python、PHP访问 MySQL 数据库代码实例
  • javascript高级教程pdf
  • 地税电子税务局漏报要去大厅吗
  • 购买材料如何计入成本
  • 土地出让金契税计税依据
  • 土地使用税征收时间
  • 股息税怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设