位置: 编程技术 - 正文

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

  • 土地取得方式有哪些
  • 防疫物资采购计入什么费用
  • 2021年度全年一次性计税
  • 股东借款超过一年个人所得税
  • 动物园的动物算野生动物吗
  • 福利企业发放职工集资利息是不是要交个人所得税
  • 租入厂房改建折旧年限
  • 定额材料损耗率国家标准
  • 劳动局仲裁支付的补偿怎么做账?
  • 年末企业盈利有什么影响
  • 全年一次性奖金计税方式2023
  • 个体工商户多久不用自动注销
  • 地税注销流程
  • 电子发票详见清单怎么开
  • 银行贷款的纳税申报表指的所得税还是增值税
  • 车辆施救费会计分录
  • 增值税普票销售方无开户行账号是否可以
  • 二甲醚增值税税率9%
  • 差额征税怎么交税
  • 专用发票过期了还能冲红发票吗
  • 利润弥补以前年度亏损是税前吗
  • 外汇汇率在其中扮演什么角色?
  • 财务费用明细科目怎么写
  • 代账代税与自行核算申报应从哪几个角度考虑
  • 背书转让后的电子承兑怎么打印
  • 增值税减免算什么费用
  • 华为mate手机sim卡怎么插
  • linux的pipe
  • 无序树有几种
  • 企业工会经费计提比例
  • thinkphp vue
  • 销售货物应如何记账
  • 税控盘是干什么用的操作有风险吗
  • 增值税普通发票查询真伪
  • js不同类型的工厂函数
  • java 泛型方法
  • 摊销专利权的会计科目是
  • 投资他人公司
  • 禁止DedeCMS未审核文档支持动态浏览方法
  • js怎么执行函数
  • 利息支出是利息费用减利息收入吗
  • 零申报失败什么原因
  • 企业所得税的纳税调整项和比例
  • 小规模纳税人运输费计入什么科目
  • c语言http请求解析表单内容
  • 现金收支月报表
  • 资产负债表里的固定资产是原值还是净值
  • 企业净利润流量怎么算
  • 年报资本负债表怎么看
  • 进口关税减免政策
  • 住宿费开的增值税专用发票怎么记账
  • 全额事业单位和差额事业单位退休工资有什么区别
  • 收到货款会计分录怎么写
  • 其他权益工具是所有者权益类科目吗
  • 生产型企业加计扣除10%
  • 电脑算固定资产哪一类
  • 建账时必须输入的内容有哪些
  • 如何查看mysql连接池
  • windowsold文件夹在哪里
  • ubuntu屏幕突然变大
  • linux系统没有yum
  • windows引导坏了怎么办
  • mac上安装
  • macbookpro接听苹果手机电话
  • 虚拟机远程控制局域网
  • dos批处理高级教程合编.pdf
  • excel乱码怎么转换
  • bash脚本语法
  • cocos2dx schedule
  • Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社
  • node.js使用教程
  • python元祖内置函数
  • python黑魔法手册
  • unity-x
  • js延时加载的方法
  • js register
  • 为什么购进固定资产不得抵扣
  • 中国税务干部
  • 广东省电子税务局app下载手机版
  • 购销合同印花税的计税依据怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设